All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jentity.datamodel.Container Maven / Gradle / Ivy

The newest version!
// Generated by the DataEntity generator, do not edit
package org.jentity.datamodel;

import java.util.*;

import org.jentity.datamodel.visitor.*;
import org.jentity.datamodel.*;

public class Container extends DataEntity {

  	public static final ContainerParameter NAME = new ContainerParameter("name");
  	public String getName() {
    	return (String)getAttribute(NAME);
  	} 
  	public void setName(String name) {
  		setAttribute(NAME, name);
  	}

  	public static final ContainerParameter TOTALVOLUME = new ContainerParameter("totalVolume");
  	public int getTotalVolume() {
		if (getAttribute(TOTALVOLUME) != null) {
  			return ((Integer)getAttribute(TOTALVOLUME)).intValue();
  		} else {
  			return -1;
  		}
  	} 
  	public void setTotalVolume(int totalVolume) {
  		setAttribute(TOTALVOLUME, new Integer(totalVolume));
  	}

  	public static final ContainerParameter MINWATERVOLUME = new ContainerParameter("minWaterVolume");
  	public int getMinWaterVolume() {
		if (getAttribute(MINWATERVOLUME) != null) {
  			return ((Integer)getAttribute(MINWATERVOLUME)).intValue();
  		} else {
  			return -1;
  		}
  	} 
  	public void setMinWaterVolume(int minWaterVolume) {
  		setAttribute(MINWATERVOLUME, new Integer(minWaterVolume));
  	}

  	public static final ContainerParameter WATERVOLUME = new ContainerParameter("waterVolume");
  	public int getWaterVolume() {
		if (getAttribute(WATERVOLUME) != null) {
  			return ((Integer)getAttribute(WATERVOLUME)).intValue();
  		} else {
  			return -1;
  		}
  	} 
  	public void setWaterVolume(int waterVolume) {
  		setAttribute(WATERVOLUME, new Integer(waterVolume));
  	}

  	public static final ContainerParameter EMPTYVOLUME = new ContainerParameter("emptyVolume");
  	public int getEmptyVolume() {
		if (getAttribute(EMPTYVOLUME) != null) {
  			return ((Integer)getAttribute(EMPTYVOLUME)).intValue();
  		} else {
  			return -1;
  		}
  	} 
  	public void setEmptyVolume(int emptyVolume) {
  		setAttribute(EMPTYVOLUME, new Integer(emptyVolume));
  	}

	public static class ContainerParameter extends ParameterEnum {
        public ContainerParameter(String name) {
          	super(name);
        }
    }
    
	@SuppressWarnings("unchecked")
    public Class getParameterEnumClass() {
    	return ContainerParameter.class;
    }
    
    @Override
    public DataEntity createInstance() {
    	return new Container();
    }
    
	private static final Map visitorMap = new HashMap();
    static {    
    	visitorMap.put(NAME, new DefaultAttributeVisitor ());		
    	visitorMap.put(TOTALVOLUME, new DefaultAttributeVisitor ());		
    	visitorMap.put(MINWATERVOLUME, new DefaultAttributeVisitor ());		
    	visitorMap.put(WATERVOLUME, new DefaultAttributeVisitor ());		
    	visitorMap.put(EMPTYVOLUME, new DefaultAttributeVisitor ());		
	}
	
	@Override
	public AttributeVisitor getVisitor(ParameterEnum parameter) {
        return (AttributeVisitor)visitorMap.get(parameter);
    }
	
	//-----------------------------Listener functionality------------------------------------
	private LinkedList listeners = new LinkedList();
	private final ChangeListener coreListener = new ChangeListener() {
	    public void handleUpdate(ChangeEvent coreChange) {
            ContainerChange changeEvent = new ContainerChange(coreChange);
	        for (Iterator iter = listeners.iterator(); iter.hasNext();) {
	            ContainerListener listener = (ContainerListener) iter.next();
	            listener.handleUpdate(changeEvent);
	        }
	    }
	};
	/**
     * Adds a listener to this Entity. Listeners will be notified of changes to
     * the attribute set. 
     */
	@SuppressWarnings("unchecked")
    public void addListener(ContainerListener listener) {
    	if (listeners.size() == 0) {
    		addListener(coreListener);
    	}
    	listeners = (LinkedList)listeners.clone();
        listeners.add(listener);
        DataEntity entity = copy();
        listener.handleUpdate(new ContainerChange(new ChangeListener.ChangeEvent(entity, entity, entity)));	
    }
    /**
     * Removes the indicated listener.
     */
	@SuppressWarnings("unchecked")
    public void removeListener(ContainerListener listener) {    
        listeners = (LinkedList)listeners.clone();
        listeners.add(listener);
    	if (listeners.size() == 0) {
    		removeListener(coreListener);
    	}
    }
    /**
     * Data core listeners must implement this interface.
     */
    public interface ContainerListener {
        public void handleUpdate(ContainerChange change);
    }
    
    /**
     * Contains information one state change in a data core. 
     */
    public static class ContainerChange {
        private final ChangeListener.ChangeEvent change;
        
        /**
         * Constructs a ChangeEvent object composed of the supplied parameters. 
         */
        private ContainerChange(ChangeListener.ChangeEvent change) {
            this.change = change;
        }
        /**
         * @return Returns the new attribute set applied to the entity.
         */
        public Container getUpdateValues() {
            return (Container)change.getUpdateValues();
        }
        /**
         * @return Returns the old attribute set replaced in the update. May be null if 
         * undefined
         */
        public Container getOldValues() {
            return (Container)change.getOldValues();
        }
        
        public Container getModel() {
            return (Container)change.getModel();
        } 
    }
}





© 2015 - 2025 Weber Informatics LLC | Privacy Policy