package cz.nkp.differ.compare.metadata.external; import cz.nkp.differ.compare.metadata.ImageMetadata; import cz.nkp.differ.compare.metadata.MetadataSource; import cz.nkp.differ.io.ProfileManager; import java.io.File; import java.util.List; import java.util.Map; /** * * @author xrosecky */ public class KduExpandMetadataExtractor extends ExternalMetadataExtractor { private ProfileManager profileManager; @Override public List<ImageMetadata> getMetadata(File file) { List<ImageMetadata> result = super.getMetadata(file); for (String profileName : profileManager.getProfiles()) { StringBuilder comparison = new StringBuilder(); boolean conform = true; Map<String, String> profile = profileManager.getProfileByName(profileName); for (ImageMetadata metadata : result) { String key = metadata.getKey(); Object val = metadata.getValue(); String profileVal = profile.get(key); if (profileVal != null) { if (val.equals(profileVal)) { comparison.append(String.format("%s: %s != %s", key, val, profileVal)); } else { comparison.append(String.format("%s: %s == %s\n", key, val, profileVal)); conform = false; } } } MetadataSource source = new MetadataSource(0, comparison.toString(), "", "profile"); result.add(new ImageMetadata(profileName, (Object) conform, source)); } return result; } public ProfileManager getProfileManager() { return profileManager; } public void setProfileManager(ProfileManager profileManager) { this.profileManager = profileManager; } }