/** * Loads the stored item. This can be called several times (per subproject), so only * the first call should do something. */ public synchronized void load(@NonNull File itemStorage) { if (mLoaded) { return; } loadItems(itemStorage); mLoaded = true; }
/** * Removes a cached item if exists and calls a {@link #getItem}. * This can happen when the generated files was removed by an external event. * @param itemKey the key of the item to re-generate */ synchronized Pair<Item, Boolean> regenerateItem(@NonNull ILogger logger, @NonNull T itemKey) { mMap.remove(itemKey); return getItem(logger, itemKey); }
Node itemNode = createItemNode(document, key, item); storedItem.getSourceFile().isFile() && storedItem.areOutputFilesPresent()) { Node itemNode = createItemNode(document, key, storedItem);
public synchronized void clear(@Nullable File itemStorage, @Nullable ILogger logger) throws IOException { if (!mMap.isEmpty()) { if (itemStorage != null) { saveItems(itemStorage); } if (logger != null) { logger.info("PREDEX CACHE HITS: " + mHits); logger.info("PREDEX CACHE MISSES: " + mMisses); } } mMap.clear(); mStoredItems.clear(); mHits = 0; mMisses = 0; }
HashCode.fromString(attrMap.getNamedItem(ATTR_SHA1).getNodeValue())); T key = getKeyFactory().of(sourceFile, revision, attrMap);
storedItem.getSourceHash().equals(getHash(inputFile))) {
Node itemNode = createItemNode(document, key, item); storedItem.getSourceFile().isFile() && storedItem.areOutputFilesPresent()) { Node itemNode = createItemNode(document, key, storedItem);
public synchronized void clear(@Nullable File itemStorage, @Nullable ILogger logger) throws IOException { if (!mMap.isEmpty()) { if (itemStorage != null) { saveItems(itemStorage); } if (logger != null) { logger.verbose("PREDEX CACHE HITS: %1$d", mHits); logger.verbose("PREDEX CACHE MISSES: %1$d", mMisses); } } mMap.clear(); mStoredItems.clear(); mHits = 0; mMisses = 0; mLoaded = false; }
HashCode.fromString(attrMap.getNamedItem(ATTR_SHA1).getNodeValue())); T key = getKeyFactory().of(sourceFile, revision, attrMap);
HashCode hash = getHash(inputFile); logger.verbose("Hash for %1$s is %2$s", inputFile.getAbsolutePath(), hash); if (storedItem.areOutputFilesPresent() &&
@Nullable @Override protected Node createItemNode( @NonNull Document document, @NonNull DexKey itemKey, @NonNull BaseItem item) throws IOException { Node itemNode = super.createItemNode(document, itemKey, item); if (itemNode != null) { Attr attr = document.createAttribute(ATTR_JUMBO_MODE); attr.setValue(Boolean.toString(itemKey.isJumboMode())); itemNode.getAttributes().setNamedItem(attr); } return itemNode; }
/** * Loads the stored item. This can be called several times (per subproject), so only * the first call should do something. */ public synchronized void load(@NonNull File itemStorage) { if (mLoaded) { return; } loadItems(itemStorage); mLoaded = true; }
@Nullable @Override protected Node createItemNode( @NonNull Document document, @NonNull DxDexKey itemKey, @NonNull BaseItem item) throws IOException { Node itemNode = super.createItemNode(document, itemKey, item); if (itemNode != null) { itemKey.writeFieldsToXml(itemNode); } return itemNode; }