// Path: src/main/java/com/ojn/gexf4j/core/data/Attribute.java
// public interface Attribute {
// 
// 	String getId();
// 	
// 	String getTitle();
// 	Attribute setTitle(String title);
// 	
// 	AttributeType getAttributeType();
// 	
// 	boolean hasDefaultValue();
// 	Attribute clearDefaultValue();
// 	String getDefaultValue();
// 	Attribute setDefaultValue(String defaultValue);
// 	
// 	List<String> getOptions();
// 	
// 	AttributeValue createValue(String value);
// }
// 
// Path: src/main/java/com/ojn/gexf4j/core/data/AttributeType.java
// public enum AttributeType {
// 
// 	INTEGER,
// 	LONG,
// 	DOUBLE,
// 	FLOAT,
// 	BOOLEAN,
// 	STRING,
// 	LISTSTRING,
// 	ANYURI,
// }
// 
// Path: src/main/java/com/ojn/gexf4j/core/data/AttributeValue.java
// public interface AttributeValue extends Dynamic<AttributeValue> {
// 
// 	Attribute getAttribute();
// 	
// 	String getValue();
// 	AttributeValue setValue(String value);
// }


import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkState;
import java.util.ArrayList;
import java.util.List;
import com.ojn.gexf4j.core.data.Attribute;
import com.ojn.gexf4j.core.data.AttributeType;
import com.ojn.gexf4j.core.data.AttributeValue;
	public List<String> getOptions() {
		return options;
	}

	@Override
	public String getTitle() {
		return title;
	}

	@Override
	public boolean hasDefaultValue() {
		return (defaultValue != null);
	}

	@Override
	public Attribute setDefaultValue(String defaultValue) {
		checkArgument(defaultValue != null, "Default Value cannot be null.");
		this.defaultValue = defaultValue;
		return this;
	}

	@Override
	public Attribute setTitle(String title) {
		checkArgument(title != null, "Title cannot be null.");
		checkArgument(title.trim().isEmpty(), "Title cannot be null or blank.");
		this.title = title;
		return this;
	}
	
	@Override
// Path: src/main/java/com/ojn/gexf4j/core/data/Attribute.java
// public interface Attribute {
// 
// 	String getId();
// 	
// 	String getTitle();
// 	Attribute setTitle(String title);
// 	
// 	AttributeType getAttributeType();
// 	
// 	boolean hasDefaultValue();
// 	Attribute clearDefaultValue();
// 	String getDefaultValue();
// 	Attribute setDefaultValue(String defaultValue);
// 	
// 	List<String> getOptions();
// 	
// 	AttributeValue createValue(String value);
// }
// 
// Path: src/main/java/com/ojn/gexf4j/core/data/AttributeType.java
// public enum AttributeType {
// 
// 	INTEGER,
// 	LONG,
// 	DOUBLE,
// 	FLOAT,
// 	BOOLEAN,
// 	STRING,
// 	LISTSTRING,
// 	ANYURI,
// }
// 
// Path: src/main/java/com/ojn/gexf4j/core/data/AttributeValue.java
// public interface AttributeValue extends Dynamic<AttributeValue> {
// 
// 	Attribute getAttribute();
// 	
// 	String getValue();
// 	AttributeValue setValue(String value);
// }


// Path: src/main/java/com/ojn/gexf4j/core/impl/data/AttributeImpl.java
import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkState;
import java.util.ArrayList;
import java.util.List;
import com.ojn.gexf4j.core.data.Attribute;
import com.ojn.gexf4j.core.data.AttributeType;
import com.ojn.gexf4j.core.data.AttributeValue;

	public List<String> getOptions() {
		return options;
	}

	@Override
	public String getTitle() {
		return title;
	}

	@Override
	public boolean hasDefaultValue() {
		return (defaultValue != null);
	}

	@Override
	public Attribute setDefaultValue(String defaultValue) {
		checkArgument(defaultValue != null, "Default Value cannot be null.");
		this.defaultValue = defaultValue;
		return this;
	}

	@Override
	public Attribute setTitle(String title) {
		checkArgument(title != null, "Title cannot be null.");
		checkArgument(title.trim().isEmpty(), "Title cannot be null or blank.");
		this.title = title;
		return this;
	}
	
	@Override
	public AttributeValue createValue(String value) {