package fr.lteconsulting.hexa.rebind; import java.util.HashMap; import java.util.Map; import com.google.gwt.core.ext.linker.Artifact; import com.google.gwt.core.ext.linker.Transferable; import fr.lteconsulting.hexa.linker.HexaCssLinker; @Transferable public class HexaCssArtifact extends Artifact<HexaCssArtifact> { private static final long serialVersionUID = -2530463324235624279L; Map<String, String> referencesMapping; public Map<String, String> getReferencesMapping() { return referencesMapping; } protected HexaCssArtifact( Map<String, String> referencesMapping ) { super( HexaCssLinker.class ); this.referencesMapping = new HashMap<>( referencesMapping); } @Override protected int compareToComparableArtifact( HexaCssArtifact o ) { int r = referencesMapping.size() - o.referencesMapping.size(); if( r != 0 ) return r; for( String e : referencesMapping.keySet() ) if( ! o.referencesMapping.containsKey( e ) ) return -1; return 0; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((referencesMapping == null) ? 0 : referencesMapping .hashCode()); return result; } @Override protected Class<HexaCssArtifact> getComparableArtifactType() { return HexaCssArtifact.class; } public void addReferencesMapping( String className, String mappedTo ) { referencesMapping.put( className, mappedTo ); } }