package gov.nih.nci.calab.domain.nano.characterization.physical;

import gov.nih.nci.calab.domain.Instrument;
import gov.nih.nci.calab.domain.Measurement;
import gov.nih.nci.calab.domain.nano.characterization.Characterization;
import gov.nih.nci.calab.domain.nano.characterization.CharacterizationProtocol;
import gov.nih.nci.calab.domain.nano.characterization.DerivedBioAssayData;
import gov.nih.nci.calab.domain.nano.particle.Nanoparticle;
import gov.nih.nci.calab.service.util.CananoConstants;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;

public class Surface implements Characterization {

	private static final long serialVersionUID = 1234567890L;

	private Long id;
	private String source;
	private String classification;
	private String description;
	private String identificationName;
	private String name;
	private String createdBy;
	private Date createdDate;
	private Collection<Nanoparticle> nanoparticleCollection;
	private Collection<DerivedBioAssayData> derivedBioAssayDataCollection = new ArrayList<DerivedBioAssayData>();
	private Instrument instrument;
	private CharacterizationProtocol characterizationProtocol;
	
	private String type;
	private Measurement surfaceArea;
	private Measurement surfaceCharge;
	private Measurement zetaPotential;
	private Measurement charge;
	private Boolean isHydrophobic;
	
	private Collection<SurfaceChemistry> surfaceChemistryCollection = new ArrayList<SurfaceChemistry>();
	
	public Surface() {
		super();
		// TODO Auto-generated constructor stub
	}

	public void setId(Long id) {
		this.id = id;
	}

	public Long getId() {
		return this.id;
	}

	public void setSource(String source) {
		this.source = source;
	}

	public String getSource() {
		return this.source;
	}

	public void setClassification(String classification) {
		this.classification = classification;
	}

	public String getClassification() {
		return CananoConstants.PHYSICAL_CHARACTERIZATION;
	}

	public String getDescription() {
		return description;
	}

	public void setDescription(String description) {
		this.description = description;
	}

	public String getIdentificationName() {
		return identificationName;
	}

	public void setIdentificationName(String identificationName) {
		this.identificationName = identificationName;
	}

	public String getName() {
		return CananoConstants.PHYSICAL_SURFACE;
	}

	public void setName(String name) {
		this.name = name;
	}

	public void setNanoparticleCollection(Collection<Nanoparticle> particles) {
		this.nanoparticleCollection = particles;
	}

	public Collection<Nanoparticle> getNanoparticleCollection() {
		return this.nanoparticleCollection;
	}

	public String getCreatedBy() {
		return createdBy;
	}

	public void setCreatedBy(String createdBy) {
		this.createdBy = createdBy;
	}

	public Date getCreatedDate() {
		return createdDate;
	}

	public void setCreatedDate(Date createdDate) {
		this.createdDate = createdDate;
	}

	public Collection<DerivedBioAssayData> getDerivedBioAssayDataCollection() {
		return derivedBioAssayDataCollection;
	}

	public void setDerivedBioAssayDataCollection(
			Collection<DerivedBioAssayData> derivedBioAssayDataCollection) {
		this.derivedBioAssayDataCollection = derivedBioAssayDataCollection;
	}

	public Instrument getInstrument() {
		return instrument;
	}

	public void setInstrument(Instrument instrument) {
		this.instrument = instrument;
	}

	public CharacterizationProtocol getCharacterizationProtocol() {
		return characterizationProtocol;
	}

	public void setCharacterizationProtocol(
			CharacterizationProtocol characterizationProtocol) {
		this.characterizationProtocol = characterizationProtocol;
	}

	public Measurement getCharge() {
		return charge;
	}

	public void setCharge(Measurement charge) {
		this.charge = charge;
	}

	public Boolean getIsHydrophobic() {
		return isHydrophobic;
	}

	public void setIsHydrophobic(Boolean isHydrophobic) {
		this.isHydrophobic = isHydrophobic;
	}

	public Measurement getSurfaceArea() {
		return surfaceArea;
	}

	public void setSurfaceArea(Measurement surfaceArrea) {
		this.surfaceArea = surfaceArrea;
	}

	public Measurement getSurfaceCharge() {
		return surfaceCharge;
	}

	public void setSurfaceCharge(Measurement surfaceCharge) {
		this.surfaceCharge = surfaceCharge;
	}

	public String getType() {
		return type;
	}

	public void setType(String type) {
		this.type = type;
	}

	public Measurement getZetaPotential() {
		return zetaPotential;
	}

	public void setZetaPotential(Measurement zetaPotential) {
		this.zetaPotential = zetaPotential;
	}

	public Collection<SurfaceChemistry> getSurfaceChemistryCollection() {
		return surfaceChemistryCollection;
	}

	public void setSurfaceChemistryCollection(
			Collection<SurfaceChemistry> surfaceChemistryCollection) {
		this.surfaceChemistryCollection = surfaceChemistryCollection;
	}

}


@@ -1166,30 +1166,8 @@
 ;%0A%09%0A
-%09private String type;%0A
 %09pri
@@ -4254,114 +4254,8 @@
 %09%7D%0A%0A
-%09public String getType() %7B%0A%09%09return type;%0A%09%7D%0A%0A%09public void setType(String type) %7B%0A%09%09this.type = type;%0A%09%7D%0A%0A
 %09pub

remove "type"