content: package com.antfortune.freeline.idea.models;
  
  import org.xmlpull.v1.XmlPullParser;
  import org.xmlpull.v1.XmlPullParserFactory;
  import com.antfortune.freeline.idea.utils.Utils;
  
  import java.io.ByteArrayInputStream;
  import java.io.InputStreamReader;
  import java.text.ParseException;
  import java.text.SimpleDateFormat;
  import java.util.Date;
  
  /**
   * Created by pengwei on 16/9/11.
   */
  public class GradleDependencyEntity {
      private String groupId;
      private String artifactId;
      private String version;
      private String updateTime;
      private String newestReleaseVersion;
  
      public String getGroupId() {
          return groupId;
      }
  
      public GradleDependencyEntity setGroupId(String groupId) {
          this.groupId = groupId;
          return this;
      }
  
      public String getArtifactId() {
          return artifactId;
      }
  
      public GradleDependencyEntity setArtifactId(String artifactId) {
          this.artifactId = artifactId;
          return this;
      }
  
      public String getVersion() {
          return version;
      }
  
      public String getUpdateTime() {
          if (Utils.notEmpty(updateTime)) {
              SimpleDateFormat df = new SimpleDateFormat("yyyyMMddhhmmss");
              try {
                  Date date = df.parse(updateTime);
                  return date.toString();
              } catch (ParseException e) {
                  e.printStackTrace();
              }
          }
          return "";
      }
  
      public GradleDependencyEntity setUpdateTime(String updateTime) {
          this.updateTime = updateTime;
          return this;
      }
  
      public GradleDependencyEntity setVersion(String version) {
          this.version = version;
          setNewestReleaseVersion(version);
          return this;
      }
  
      /**
       * xml解析为对象
       *
       * @param text
       * @return
       */
      public static GradleDependencyEntity parse(String text) {
          GradleDependencyEntity entity = new GradleDependencyEntity();
          XmlPullParserFactory f = null;
          try {
              f = XmlPullParserFactory.newInstance();
              f.setNamespaceAware(true);
              XmlPullParser xmlPullParser = f.newPullParser();
              xmlPullParser.setInput(new InputStreamReader(new ByteArrayInputStream(text.getBytes())));
              int eventType = xmlPullParser.getEventType();
              while (eventType != XmlPullParser.END_DOCUMENT) {
                  if (eventType == XmlPullParser.START_DOCUMENT) {
  
                  } else if (eventType == XmlPullParser.START_TAG) {
                      String name = xmlPullParser.getName();
                      if (name.equals("groupId")) {
                          entity.setGroupId(xmlPullParser.nextText());
                      } else if (name.equals("artifactId")) {
                          entity.setArtifactId(xmlPullParser.nextText());
                      } else if (name.equals("version")) {
                          String version = xmlPullParser.nextText();
                          entity.setVersion(version);
                      } else if (name.equals("lastUpdated")) {
                          entity.setUpdateTime(xmlPullParser.nextText());
                      }
                  } else if (eventType == XmlPullParser.END_TAG) {
  
                  } else if (eventType == XmlPullParser.TEXT) {
  
                  }
                  eventType = xmlPullParser.next();
              }
          } catch (Exception e) {
              e.printStackTrace();
          }
          return entity;
      }
  
      public String getNewestReleaseVersion() {
          return newestReleaseVersion;
      }
  
      private void setNewestReleaseVersion(String version) {
          if (version != null && version.split("\\.").length == 3) {
              this.newestReleaseVersion = version;
          }
      }
  
      @Override
      public String toString() {
          return "GradleDependencyEntity{" +
                  "groupId='" + groupId + '\'' +
                  ", artifactId='" + artifactId + '\'' +
                  ", version='" + version + '\'' +
                  ", updateTime='" + updateTime + '\'' +
                  ", newestReleaseVersion='" + newestReleaseVersion + '\'' +
                  '}';
      }
  }
  