01: //THIS SOFTWARE IS PROVIDED BY SOFTARIS PTY.LTD. AND OTHER METABOSS
02: //CONTRIBUTORS ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING,
03: //BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
04: //FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SOFTARIS PTY.LTD.
05: //OR OTHER METABOSS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
06: //INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
07: //LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
08: //OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
09: //LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
10: //NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
11: //EVEN IF SOFTARIS PTY.LTD. OR OTHER METABOSS CONTRIBUTORS ARE ADVISED OF THE
12: //POSSIBILITY OF SUCH DAMAGE.
13: //
14: //Copyright 2000-2005 © Softaris Pty.Ltd. All Rights Reserved.
15: package tudresden.ocl.lib;
16:
17: import com.metaboss.enterprise.datatypes.DataType;
18:
19: /** This class is the base class for OclFactories used in MetaBoss. It deals with data types as well as with nulls */
20: public abstract class MetaBossOclFactoryBase extends DefaultOclFactory {
21: /** Returns the OclRepresentatuion for the given object */
22: public OclRoot getOclRepresentationFor(Object o) {
23: // Deal with null as if it is an undefined object
24: if (o == null)
25: return new OclUndefined("Object is null");
26:
27: if (o instanceof DataType) {
28: if (((DataType) o).isEmpty())
29: return new tudresden.ocl.lib.OclUndefined(
30: "Primitive value object contains empty value",
31: true);
32: if (((DataType) o).isConcealed())
33: return new tudresden.ocl.lib.OclUndefined(
34: "Primitive value object contains concealed value",
35: false);
36: return new OclDataType(
37: (com.metaboss.enterprise.datatypes.DataType) o);
38: }
39: return super.getOclRepresentationFor(o);
40: }
41: }
|