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

org.nakedobjects.metamodel.util.NakedObjectUtils Maven / Gradle / Ivy

The newest version!
package org.nakedobjects.metamodel.util;

import java.util.ArrayList;
import java.util.List;

import org.nakedobjects.metamodel.adapter.NakedObject;


public class NakedObjectUtils {

    private NakedObjectUtils() {}

    public static boolean exists(final NakedObject nakedObject) {
        return nakedObject != null && nakedObject.getObject() != null;
    }

    public static boolean wrappedEqual(final NakedObject nakedObject1, final NakedObject nakedObject2) {
        final boolean defined1 = exists(nakedObject1);
        final boolean defined2 = exists(nakedObject2);
        if (defined1 && !defined2) {
            return false;
        }
        if (!defined1 && defined2) {
            return false;
        }
        if (!defined1 && !defined2) {
            return true;
        } // both null
        return nakedObject1.getObject().equals(nakedObject2.getObject());
    }

    public static Object unwrap(final NakedObject adapter) {
        return adapter != null ? adapter.getObject() : null;
    }

    public static Object[] unwrap(final NakedObject[] adapters) {
        if (adapters == null) {
            return null;
        }
        final Object[] unwrappedObjects = new Object[adapters.length];
        int i = 0;
        for (final NakedObject adapter : adapters) {
            unwrappedObjects[i++] = unwrap(adapter);
        }
        return unwrappedObjects;
    }

	@SuppressWarnings("unchecked")
	public static  List unwrap(List adapters) {
		List list = new ArrayList();
		for(NakedObject adapter: adapters) {
			list.add((T) unwrap(adapter));
		}
		return list;
	}


    public static String titleString(final NakedObject adapter) {
        return adapter != null ? adapter.titleString() : "";
    }

    public static boolean nullSafeEquals(final Object obj1, final Object obj2) {
        if (obj1 == null && obj2 == null) {
            return true;
        }
        if (obj1 == null || obj2 == null) {
            return false;
        }
        if (obj1.equals(obj2)) {
            return true;
        }
        if (obj1 instanceof NakedObject && obj2 instanceof NakedObject) {
            final NakedObject nakedObj1 = (NakedObject) obj1;
            final NakedObject nakedObj2 = (NakedObject) obj2;
            return nullSafeEquals(nakedObj1.getObject(), nakedObj2.getObject());
        }
        return false;
    }

    
}

// Copyright (c) Naked Objects Group Ltd.




© 2015 - 2024 Weber Informatics LLC | Privacy Policy