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 + '\'' +
'}';
}
}