package models.dynamo;
import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBAttribute;
import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBAutoGeneratedKey;
import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBHashKey;
import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBTable;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import play.Logger;
import play.libs.XPath;
import java.util.ArrayList;
import java.util.List;
/**
* A Flickr Tag for which we have retrieved some photos
* User: pvillega
*/
@DynamoDBTable(tableName = "tag")
public class Tag {
private String id;
private String name;
@DynamoDBHashKey
@DynamoDBAutoGeneratedKey
public String getId() { return id; }
public void setId(String id) { this.id = id; }
@DynamoDBAttribute
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public static List<Tag> convertToTagList(Document xml) {
List<Tag> tags = new ArrayList<>();
NodeList xmlTags = XPath.selectNodes("//tag", xml);
Logger.debug("Tags number: " + xmlTags.getLength());
for(int i = 0; i < xmlTags.getLength(); i++) {
Node n = xmlTags.item(i);
Logger.debug("Tag: " + n.getTextContent());
Tag t = new Tag();
t.setName(n.getTextContent());
tags.add(t);
}
return tags;
}
}