@Override public boolean equals(Object o) { if (this == o) { return true; } if (o == null || getClass() != o.getClass()) { return false; } if (!super.equals(o)) { return false; } DxDexKey dxDexKey = (DxDexKey) o; return mAdditionalParameters.equals(dxDexKey.mAdditionalParameters) && Objects.equal(mIsMultiDex, dxDexKey.mIsMultiDex); }
@Override public String toString() { return MoreObjects.toStringHelper(this) .add("buildTools", getBuildToolsRevision()) .add("sourceFile", getSourceFile()) .add("mJumboMode", mJumboMode) .add("mOptimize", mOptimize) .toString(); } }
@Override public int hashCode() { return Objects.hashCode(super.hashCode(), toolUsed, minApiName, additionalParameters); } }
@Override public DexKey of(@NonNull File sourceFile, @NonNull FullRevision revision, @NonNull NamedNodeMap attrMap) { return DexKey.of(sourceFile, revision, Boolean.parseBoolean(attrMap.getNamedItem(ATTR_JUMBO_MODE).getNodeValue())); } };
@Override protected void writeFieldsToXml(@NonNull Node itemNode) { super.writeFieldsToXml(itemNode); Document document = itemNode.getOwnerDocument(); if (!mAdditionalParameters.isEmpty()) { Attr additionalParameters = document.createAttribute(ATTR_ADDITIONAL_PARAMETERS); additionalParameters.setValue( Joiner.on(ADDITIONAL_PARAMETERS_SEPARATOR).join(mAdditionalParameters)); itemNode.getAttributes().setNamedItem(additionalParameters); } if (mIsMultiDex != null) { Attr multiDexAttr = document.createAttribute(ATTR_IS_MULTIDEX); multiDexAttr.setValue(Boolean.toString(mIsMultiDex)); itemNode.getAttributes().setNamedItem(multiDexAttr); } }
@Override public String toString() { return MoreObjects.toStringHelper(this) .add("dexKey", super.toString()) .add("mAdditionalParameters", mAdditionalParameters) .add("mIsMultiDex", mIsMultiDex) .toString(); } }
static DexKey of(@NonNull File sourceFile, @NonNull FullRevision buildToolsRevision, boolean jumboMode) { return new DexKey(sourceFile, buildToolsRevision, jumboMode); }
@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; }
checkState(!multiDex || outFile.isDirectory()); DexKey itemKey = DexKey.of( inputFile, buildToolInfo.getRevision(),
@Override protected void writeFieldsToXml(@NonNull Node itemNode) { super.writeFieldsToXml(itemNode); Document document = itemNode.getOwnerDocument(); Attr toolUsedAttr = document.createAttribute(ATTR_TOOL_USED); toolUsedAttr.setValue(toolUsed); itemNode.getAttributes().setNamedItem(toolUsedAttr); Attr minApiAttr = document.createAttribute(ATTR_MIN_API_NAME); minApiAttr.setValue(minApiName); itemNode.getAttributes().setNamedItem(minApiAttr); Element params = document.createElement(ELEM_ADDITIONAL_PARAMETERS); for (String paramKey: additionalParameters.keySet()) { String paramValue = additionalParameters.get(paramKey); Element element = document.createElement(ELEM_ADDITIONAL_PARAMETERS_ENTRY); element.setAttribute(ATTR_PARAMETER_KEY, paramKey); element.setAttribute(ATTR_PARAMETER_VALUE, paramValue); params.appendChild(element); } document.appendChild(params); }
@Override public int hashCode() { return Objects.hashCode(super.hashCode(), mAdditionalParameters, mIsMultiDex); }
@Override public boolean equals(Object o) { if (this == o) { return true; } if (o == null || getClass() != o.getClass()) { return false; } if (!super.equals(o)) { return false; } JackDexKey dxDexKey = (JackDexKey) o; return Objects.equal(toolUsed, dxDexKey.toolUsed) && minApiName.equals(dxDexKey.minApiName) && additionalParameters.equals(dxDexKey.additionalParameters); }