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

org.dmd.dmt.shared.generated.types.DmcTypePrimitiveTMREFSET Maven / Gradle / Ivy

Go to download

The dark-matter project provides mechanism to define concepts associated with Domain Specific Languages (DSLs) and generate code that can be extended with business logic that supports the given DSL purpose.

There is a newer version: 3.1.15
Show newest version
package org.dmd.dmt.shared.generated.types;

import java.io.Serializable;
import java.util.Set;
import java.util.HashSet;
import java.util.TreeSet;
import java.util.Iterator;
import org.dmd.dmc.DmcAttribute;
import org.dmd.dmc.DmcAttributeInfo;
import org.dmd.dmc.DmcValueException;
import org.dmd.dms.generated.enums.ValueTypeEnum;
import org.dmd.dmt.shared.generated.dmo.PrimitiveTMDMO;    // DmcType import
/**
 * The DmcTypePrimitiveTMREFSET provides storage for a set of PrimitiveTMDMO
 * 

* This code was auto-generated and shouldn't be altered manually! * Generated from: org.dmd.dms.util.GenUtility.dumpSETType(GenUtility.java:2811) * Called from: org.dmd.dms.util.DmoTypeFormatter.dumpNormalREFType(DmoTypeFormatter.java:256) */ @SuppressWarnings("serial") public class DmcTypePrimitiveTMREFSET extends DmcTypePrimitiveTMREF implements Serializable { private final static Iterator emptyList = (new HashSet()).iterator(); protected Set value; public DmcTypePrimitiveTMREFSET(){ value = null; } public DmcTypePrimitiveTMREFSET(DmcAttributeInfo ai){ super(ai); initValue(); } void initValue(){ if (getAttributeInfo().valueType == ValueTypeEnum.HASHSET) value = new HashSet(); else value = new TreeSet(); } @Override public DmcTypePrimitiveTMREFSET getNew(){ return(new DmcTypePrimitiveTMREFSET(getAttributeInfo())); } @Override // org.dmd.dms.util.GenUtility.dumpSETType(GenUtility.java:2852) public DmcAttribute cloneIt(){ synchronized(this){ DmcTypePrimitiveTMREFSET rc = getNew(); if (value == null) return(rc); for(PrimitiveTMDMO val: value) try { rc.add(val); } catch (DmcValueException e) { throw(new IllegalStateException("typeCheck() should never fail here!",e)); } return(rc); } } @Override // org.dmd.dms.util.GenUtility.dumpSETType(GenUtility.java:2875) public PrimitiveTMDMO add(Object v) throws DmcValueException { synchronized(this){ PrimitiveTMDMO rc = typeCheck(v); if (value == null) initValue(); // If false is returned, we didn't modify the set, so return null if (!value.add(rc)) rc = null; return(rc); } } @Override // org.dmd.dms.util.GenUtility.dumpSETType(GenUtility.java:2892) public PrimitiveTMDMO del(Object v){ synchronized(this){ PrimitiveTMDMO rc = null; if (value == null) return(rc); try { rc = typeCheck(v); } catch (DmcValueException e) { throw(new IllegalStateException("Incompatible type passed to del():" + getName(),e)); } if (value.contains(rc)){ value.remove(rc); if (value.size() == 0) value = null; } else rc = null; return(rc); } } @Override // org.dmd.dms.util.GenUtility.dumpSETType(GenUtility.java:2917) public Iterator getMV(){ synchronized(this){ if (value == null) return(emptyList); if (getAttributeInfo().valueType == ValueTypeEnum.HASHSET) return( (new HashSet(value)).iterator() ); else return( (new TreeSet(value)).iterator() ); } } // org.dmd.dms.util.GenUtility.dumpSETType(GenUtility.java:2931) public Set getMVCopy(){ synchronized(this){ if (getAttributeInfo().valueType == ValueTypeEnum.HASHSET){ if (value == null) return(new HashSet()); else return(new HashSet(value)); } else{ if (value == null) return(new TreeSet(value)); else return(new TreeSet(value)); } } } @Override // org.dmd.dms.util.GenUtility.dumpSETType(GenUtility.java:2951) public int getMVSize(){ synchronized(this){ if (value == null) return(0); return(value.size()); } } @Override // org.dmd.dms.util.GenUtility.dumpSETType(GenUtility.java:2962) public boolean contains(Object v){ synchronized(this){ if (value == null) return(false); try { PrimitiveTMDMO val = typeCheck(v); return(value.contains(val)); } catch (DmcValueException e) { return(false); } } } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy