Artifact.java

  1. package org.docascode.ant.types;

  2. import org.apache.commons.io.FilenameUtils;
  3. import org.apache.tools.ant.types.DataType;
  4. import org.docascode.api.core.Substitute;
  5. import org.docascode.api.core.errors.DocAsCodeException;
  6. import org.docascode.api.core.office.PropertiesProcessor;
  7. import org.eclipse.aether.artifact.DefaultArtifact;

  8. import java.io.File;
  9. import java.util.ArrayList;
  10. import java.util.List;
  11. import java.util.Map;

  12. public class Artifact extends DataType {
  13.     private String groupId;
  14.     public void setGroupId(String groupId){
  15.         this.groupId = groupId;
  16.     }

  17.     private String artifactId;
  18.     public void setArtifactId(String artifactId){
  19.         this.artifactId = artifactId;
  20.     }

  21.     private String version;
  22.     public void setVersion(String version){
  23.         this.version = version;
  24.     }

  25.     private String extension;
  26.     public void setExtension(String extension){
  27.         this.extension = extension;
  28.     }

  29.     private File file;
  30.     public void setFile (File file){
  31.         this.file = file;
  32.     }

  33.     private List<AttachedArtifact> attached = new ArrayList<>();
  34.     public void addConfiguredAttachedArtifact(AttachedArtifact attachedArtifact){
  35.         this.attached.add(attachedArtifact);
  36.     }

  37.     public org.docascode.api.core.mvn.Artifacts toArtifacts() throws DocAsCodeException {
  38.         org.docascode.api.core.mvn.Artifacts result = new org.docascode.api.core.mvn.Artifacts();
  39.         Map<String,String> dict = new PropertiesProcessor().list(file);
  40.         if (file != null){
  41.             this.extension = FilenameUtils.getExtension(file.getAbsolutePath());
  42.         }
  43.         org.eclipse.aether.artifact.Artifact artifact =
  44.                 new DefaultArtifact(Substitute.substitute(groupId,dict),
  45.                         Substitute.substitute(artifactId,dict),
  46.                         Substitute.substitute("",dict),
  47.                         extension,
  48.                         Substitute.substitute(version,dict));
  49.             artifact=artifact.setFile(this.file);
  50.         result.add(artifact);
  51.         for (AttachedArtifact attachedArtifact : attached){
  52.             artifact =
  53.                     new DefaultArtifact(Substitute.substitute(groupId,dict),
  54.                             Substitute.substitute(artifactId,dict),
  55.                             Substitute.substitute(attachedArtifact.getClassifier(),dict),
  56.                             attachedArtifact.getExtension(),
  57.                             Substitute.substitute(version,dict));
  58.             artifact=artifact.setFile(attachedArtifact.getFile());
  59.             result.add(artifact);
  60.         }
  61.         return result;
  62.     }
  63. }