package org.dresdenocl.standardlibrary.java.internal.library;
import java.util.HashSet;
import org.dresdenocl.essentialocl.standardlibrary.OclAny;
import org.dresdenocl.essentialocl.standardlibrary.OclBoolean;
import org.dresdenocl.essentialocl.standardlibrary.OclSet;
import org.dresdenocl.essentialocl.standardlibrary.OclVoid;
import org.dresdenocl.essentialocl.types.TypesFactory;
import org.dresdenocl.modelinstancetype.types.IModelInstanceVoid;
import org.dresdenocl.standardlibrary.java.factory.JavaStandardLibraryFactory;
public class JavaOclVoid extends JavaOclAny implements OclVoid {
private static JavaOclVoid instance = null;
private static JavaOclVoid getInstance() {
if (instance == null)
instance = new JavaOclVoid(IModelInstanceVoid.INSTANCE);
return instance;
}
public static JavaOclVoid INSTANCE = getInstance();
/**
* Private constructor for singleton.
*
* @param imiElement
*/
private JavaOclVoid(IModelInstanceVoid imiElement) {
super(imiElement);
undefinedreason = "null value";
}
/**
* Explicit public constructor to allow <code>null</code> values to be
* invalid.
*
* @param invalidReason
* the {@link Throwable} that caused this element to be invalid
*/
public JavaOclVoid(Throwable invalidReason) {
super(invalidReason);
}
/*
* (non-Javadoc)
*
* @see org.dresdenocl.essentialocl.standardlibrary.OclAny#asSet()
*/
public <T extends OclAny> OclSet<T> asSet() {
return JavaStandardLibraryFactory.INSTANCE.createOclSet(
new HashSet<T>(), TypesFactory.INSTANCE.createAnyType());
}
/*
* (non-Javadoc)
*
* @see
* org.dresdenocl.essentialocl.standardlibrary.OclAny#isEqualTo(tudresden
* .ocl20.pivot.essentialocl.standardlibrary.OclAny)
*/
public OclBoolean isEqualTo(OclAny object2) {
// standard, p. 140f
if (object2 instanceof OclVoid) {
return JavaOclBoolean.getInstance(true);
} else {
return JavaOclBoolean.getInstance(false);
}
}
/*
* (non-Javadoc)
*
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return "null";
}
}