package br.ufrgs.inf.dsmoura.repository.model.entity; import java.net.URI; import java.net.URISyntaxException; import java.util.List; import br.ufrgs.inf.dsmoura.repository.controller.util.FieldsUtil; public abstract class Artifactable implements Comparable<Artifactable> { public abstract String getId(); public abstract void setId(String id); public abstract String getName(); public abstract void setName(String name); public abstract String getType(); public abstract void setType(String type); public abstract String getDescription(); public abstract void setDescription(String description); public abstract String getReference(); public abstract void setReference(String reference); public abstract byte[] getFile(); public abstract void setFile(byte[] file); public abstract Integer getSize(); public abstract SoftwareLicenseDTO getSoftwareLicenseDTO(); public abstract void setSoftwareLicenseDTO(SoftwareLicenseDTO softwareLicenseDTO); public abstract Long getRandomID(); public abstract void setRandomID(Long randomID); public abstract String getLocation(); public abstract void setLocation(String location); public abstract List<ArtifactDependencyDTO> getArtifactDependencyDTOs(); public abstract void setArtifactDependencyDTOs(List<ArtifactDependencyDTO> artifactDependencyDTOs); public String getDescriptionNorm() { return FieldsUtil.normalize(getDescription()); } @Override public int compareTo(Artifactable o) { try { return Long.valueOf( this.getId() ).compareTo( Long.valueOf( o.getId() ) ); } catch(Exception e) { return -1; } } public boolean isValidURI() { if (this.getReference() != null && this.getReference().length() > 0) { try { new URI(this.getReference()); return true; } catch (URISyntaxException e) { return false; } } return false; } }