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

com.draagon.meta.key.ObjectKey Maven / Gradle / Ivy

The newest version!
package com.draagon.meta.key;

import com.draagon.meta.object.MetaObject;

import java.lang.reflect.Array;

public class ObjectKey {

    private final MetaObject metaObject;
    private final MetaKey.KeyTypes keyType;
    private final Object [] key;


    public ObjectKey(Object key) {
        if ( key.getClass().isArray()) {
            this.key = (Object []) key;
        } else {
            this.key = new Object[1];
            this.key[0] = key;
        }
        this.keyType = MetaKey.KeyTypes.UNKNOWN;
        this.metaObject=null;
    }

    public ObjectKey(MetaObject metaObject, MetaKey.KeyTypes keyType, Object [] key ) {
        this.key=key;
        this.keyType = keyType;
        this.metaObject=metaObject;
    }

    public Object [] get() {
        return key;
    }

    public MetaObject getMetaObject() {
        return metaObject;
    }

    public String getAsString() {
        StringBuilder b = new StringBuilder();
        for( int i = 0; i < key.length; i++ ) {
            if (b.length()>0) b.append(",");
            b.append(String.valueOf(key[i]));
        }
        String keyStr = b.toString();
        return keyStr;
    }

    public String toString() {
        return (metaObject==null? MetaKey.KeyTypes.UNKNOWN :metaObject.getName()+":"+keyType)+"["+getAsString()+"]";
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy