// Path: src/main/java/com/ojn/gexf4j/core/Metadata.java
// public interface Metadata {
// 
// 	boolean isEmpty();
// 	Metadata clearMetadata();
// 	
// 	boolean hasLastModified();
// 	Metadata clearLastModified();
// 	Date getLastModified();
// 	Metadata setLastModified(Date lastModified);
// 	
// 	boolean hasCreator();
// 	Metadata clearCreator();
// 	String getCreator();
// 	Metadata setCreator(String creator);
// 	
// 	boolean hasDescription();
// 	Metadata clearDescription();
// 	String getDescription();
// 	Metadata setDescription(String description);
// 	
// 	List<String> getKeywords();
// }


import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkState;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import com.ojn.gexf4j.core.Metadata;
	public String getCreator() {
		checkState(hasCreator(), "Creator has not been set.");
		return creator;
	}
	
	@Override
	public Metadata setCreator(String creator) {
		checkArgument(creator != null, "Creator cannot be set to null.");
		this.creator = creator;
		return this;
	}
	
	@Override
	public boolean hasDescription() {
		return (description != null);
	}

	@Override
	public Metadata clearDescription() {
		description = null;
		return this;
	}
	
	@Override
	public String getDescription() {
		checkState(hasDescription(), "Description has not been set.");
		return description;
	}
	
	@Override
// Path: src/main/java/com/ojn/gexf4j/core/Metadata.java
// public interface Metadata {
// 
// 	boolean isEmpty();
// 	Metadata clearMetadata();
// 	
// 	boolean hasLastModified();
// 	Metadata clearLastModified();
// 	Date getLastModified();
// 	Metadata setLastModified(Date lastModified);
// 	
// 	boolean hasCreator();
// 	Metadata clearCreator();
// 	String getCreator();
// 	Metadata setCreator(String creator);
// 	
// 	boolean hasDescription();
// 	Metadata clearDescription();
// 	String getDescription();
// 	Metadata setDescription(String description);
// 	
// 	List<String> getKeywords();
// }


// Path: src/main/java/com/ojn/gexf4j/core/impl/MetadataImpl.java
import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkState;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import com.ojn.gexf4j.core.Metadata;

	public String getCreator() {
		checkState(hasCreator(), "Creator has not been set.");
		return creator;
	}
	
	@Override
	public Metadata setCreator(String creator) {
		checkArgument(creator != null, "Creator cannot be set to null.");
		this.creator = creator;
		return this;
	}
	
	@Override
	public boolean hasDescription() {
		return (description != null);
	}

	@Override
	public Metadata clearDescription() {
		description = null;
		return this;
	}
	
	@Override
	public String getDescription() {
		checkState(hasDescription(), "Description has not been set.");
		return description;
	}
	
	@Override
	public Metadata setDescription(String description) {