Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 package com.octo.android.robospice.persistence.file;
 
 import java.io.File;
 
public final class InFileStringObjectPersister extends InFileObjectPersisterString > {
    private final static String LOG_CAT = InFileStringObjectPersister.class.getSimpleName();
    public InFileStringObjectPersisterApplication application ) {
        superapplication );
    }
    @Override
    public boolean canHandleClassClass< ? > clazz ) {
        return clazz.equalsString.class );
    }
    @Override
    public String loadDataFromCacheObject cacheKeylong maxTimeInCacheBeforeExpiry ) throws CacheLoadingException {
        Log.v"Loading String for cacheKey = " + cacheKey );
        File file = getCacheFilecacheKey );
        if ( file.exists() ) {
            long timeInCache = System.currentTimeMillis() - file.lastModified();
            if ( maxTimeInCacheBeforeExpiry == 0 || timeInCache <= maxTimeInCacheBeforeExpiry ) {
                try {
                    return CharStreams.toString( Files.newReaderfile, Charset.forName"UTF-8" ) ) );
                } catch ( FileNotFoundException e ) {
                    // Should not occur (we test before if file exists)
                    // Do not throw, file is not cached
                    Log.w"file " + file.getAbsolutePath() + " does not exists"e );
                    return null;
                } catch ( Exception e ) {
                    throw new CacheLoadingExceptione );
                }
            }
        }
        Log.v"file " + file.getAbsolutePath() + " does not exists" );
        return null;
    }
    @Override
    public String saveDataToCacheAndReturnDatafinal String datafinal Object cacheKey ) throws CacheSavingException {
        Log.v"Saving String " + data + " into cacheKey = " + cacheKey );
        try {
            if (  ) {
                new Thread() {
                    @Override
                    public void run() {
                        try {
                            Files.writedatagetCacheFilecacheKey ), Charset.forName"UTF-8" ) );
                        } catch ( IOException e ) {
                            Log.e"An error occured on saving request " + cacheKey + " data asynchronously"e );
                        } finally {
                            // notify that saving is finished for test purpose
                            .lock();
                            .signal();
                            .unlock();
                        }
                    };
                }.start();
            } else {
                Files.writedatagetCacheFilecacheKey ), Charset.forName"UTF-8" ) );
            }
        } catch ( Exception e ) {
            throw new CacheSavingExceptione );
        }
        return data;
    }

    
for testing purpose only. Overriding allows to regive package level visibility.
    @Override
    protected void awaitForSaveAsyncTerminationlong timeTimeUnit timeUnit ) throws InterruptedException {
        super.awaitForSaveAsyncTerminationtimetimeUnit );
    }
New to GrepCode? Check out our FAQ X