public final Map<String, Object> getAttributesForXml() { if (attributesForXml == null) { Map<String, Object> map = new LinkedHashMap<>(); map.put("type", type); appendAttributes(map); attributesForXml = Collections.unmodifiableMap(map); } return attributesForXml; }
public final Map<String, Object> getSqlCriteria() { if (sqlCriteria == null) { Map<String, Object> map = new LinkedHashMap<>(); map.put("type", type); appendCriteria(map); sqlCriteria = Collections.unmodifiableMap(map); } return sqlCriteria; }
public String getPipelineUniqueFingerprint() { if (pipelineUniqueFingerprint == null) { Map<String, Object> basicCriteria = new LinkedHashMap<>(getSqlCriteria()); appendPipelineUniqueCriteria(basicCriteria); pipelineUniqueFingerprint = generateFingerprintFromCriteria(basicCriteria); } return pipelineUniqueFingerprint; }
public String getFingerprint() { if (fingerprint == null) { fingerprint = generateFingerprintFromCriteria(getSqlCriteria()); } return fingerprint; }
void populateXml(Element materials, Modifications modifications, XmlWriterContext writerContext) { Element materialElement = materials.addElement("material"); materialElement.addAttribute("materialUri", writerContext.getBaseUrl() + "/api/materials/" + material.getId() + ".xml"); for (Map.Entry<String, Object> criterion : material.getAttributesForXml().entrySet()) { if (criterion.getValue() != null) { materialElement.addAttribute(criterion.getKey(), criterion.getValue().toString()); } } Element modificationsTag = materialElement.addElement("modifications"); populateXmlForModifications(modifications, writerContext, modificationsTag); }
@Override void populateXmlForModifications(Modifications modifications, XmlWriterContext writerContext, Element modificationsTag) { for (Modification modification : modifications) { Element changeset = modificationsTag.addElement("changeset"); changeset.addAttribute("changesetUri", ScmMaterial.changesetUrl(modification, writerContext.getBaseUrl(), material.getId())); changeset.addElement("user").addCDATA(modification.getUserDisplayName()); changeset.addElement("checkinTime").addText(DateUtils.formatISO8601(modification.getModifiedTime())); changeset.addElement("revision").addCDATA(modification.getRevision()); changeset.addElement("message").addCDATA(modification.getComment()); } } }
@Override public boolean hasSameFingerprint(MaterialConfig materialConfig) { return getFingerprint().equals(materialConfig.getFingerprint()); }
protected boolean hasDestinationFolder() { return !StringUtils.isBlank(getFolder()); }
public String getTruncatedDisplayName() { String displayName = getDisplayName(); if (displayName.length() > TRUNCATED_NAME_MAX_LENGTH) { StringBuffer buffer = new StringBuffer(); buffer.append(displayName.substring(0, TRUNCATED_NAME_MAX_LENGTH / 2)); buffer.append("..."); buffer.append(displayName.substring(displayName.length() - TRUNCATED_NAME_MAX_LENGTH / 2)); displayName = buffer.toString(); } return displayName; }
@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; } ScmMaterial that = (ScmMaterial) o; if (folder != null ? !folder.equals(that.folder) : that.folder != null) { return false; } return true; }
@Override void populateXmlForModifications(Modifications modifications, XmlWriterContext writerContext, Element modificationsTag) { for (Modification modification : modifications) { Element changeset = modificationsTag.addElement("changeset"); changeset.addAttribute("changesetUri", ScmMaterial.changesetUrl(modification, writerContext.getBaseUrl(), material.getId())); changeset.addElement("user").addCDATA(modification.getUserDisplayName()); changeset.addElement("checkinTime").addText(DateUtils.formatISO8601(modification.getModifiedTime())); changeset.addElement("revision").addCDATA(modification.getRevision()); changeset.addElement("message").addCDATA(modification.getComment()); List<ModifiedFile> modifiedFiles = modification.getModifiedFiles(); for (ModifiedFile modifiedFile : modifiedFiles) { changeset.addElement("file").addAttribute("name", modifiedFile.getFileName()).addAttribute("action", modifiedFile.getAction().toString()); } } } }
public boolean isSameFlyweight(Material other) { return getFingerprint().equals(other.getFingerprint()); }