Package com.forgeessentials.data.api

Examples of com.forgeessentials.data.api.TypeData


        }

        Configuration cfg = new Configuration(file, true);
        cfg.load();
        ITypeInfo<?> info = DataStorageManager.getInfoForType(type);
        TypeData data = DataStorageManager.getDataForType(type);
        readClassFromProperty(cfg, cfg.getCategory(type.getFileSafeName()), data, info);
        data.setUniqueKey(uniqueKey);

        return data;
    }
View Full Code Here


        {
            cfg.get(category, name, (String[]) obj);
        }
        else if (type.equals(TypeData.class))
        {
            TypeData data = (TypeData) obj;
            String newcat = category + "." + name;

            for (Entry<String, Object> entry : data.getAllFields())
            {
                writeFieldToProperty(cfg, newcat, entry.getKey(), entry.getValue());
            }
        }
        else
View Full Code Here

        if (cat != null)
        {
            String name;
            ClassContainer newType;
            ITypeInfo<?> newInfo;
            TypeData newData;
            Object value;
            for (Property prop : cat.getValues().values())
            {
                name = prop.getName();
                newType = info.getTypeOfField(name);
View Full Code Here

  @Override
  public TypeData getTypeDataFromObject(Object objectSaved)
  {
    Class<?> c = objectSaved.getClass();
    TypeData data = DataStorageManager.getDataForType(new ClassContainer(type));
    Field f = null;
    Object obj;

    // do Unique key stuff
    try
    {
      if (isUniqueKeyField)
      {
        Class<?> tempClass = c;
        while (f == null) {
          try
          {
            f = tempClass.getDeclaredField(uniqueKey);
          }
          catch (NoSuchFieldException e)
          {
            tempClass = tempClass.getSuperclass();
            if (tempClass == null)
              throw e;
          }
        }
        f.setAccessible(true);
        data.setUniqueKey(f.get(objectSaved).toString());
      }
      else
      {
        Method m;
        String methodName = uniqueKey.replace("()", "");
        m = c.getDeclaredMethod(methodName, new Class[] {});
        m.setAccessible(true);
        Object val = m.invoke(objectSaved, new Object[] {});
        data.setUniqueKey(val.toString());

      }
    }
    catch (Exception e)
    {
      OutputHandler.exception(Level.SEVERE, "Reflection error trying to get UniqueLoadingKey from " + objectSaved.getClass()
          + ". FE will continue without saving this.", e);
    }

    String[] keys = fields.keySet().toArray(new String[fields.size()]);
    Class<?> currentClass = c;
    // Iterate over the object grabbing the fields we want to examine.
    for (int i = 0; i < keys.length; ++i)
    {
      try
      {
        f = currentClass.getDeclaredField(keys[i]);
        f.setAccessible(true);
        obj = f.get(objectSaved);

        if (obj != null)
        {
          if (StorageManager.isTypeComplex(obj.getClass()))
          {
            // This object is not a primitive. Call this function on the appropriate TypeTagger.
            obj = DataStorageManager.getDataForObject(fields.get(keys[i]), obj);
          }
          data.putField(keys[i], obj);
        }
        // Ensure we reset the currentClass after trying this. It may have been altered by a previous attempt.
        currentClass = c;
      }
      catch (NoSuchFieldException e)
View Full Code Here

    {
        HashSet<TypeData> datas = new HashSet<TypeData>();

        NBTTagCompound nbt = (NBTTagCompound) obj;

        TypeData data;
        NBTBase tag;
        for (String name : (Collection<String>) nbt.func_150296_c())
        {
            tag = nbt.getTag(name);
            data = getEntryData();
            data.putField(TYPE, tag.getId());
            data.putField(KEY, name);

            if (tag instanceof NBTTagCompound)
            {
                data.putField(COMPOUND, tag);
            }
            else if (tag instanceof NBTTagIntArray)
            {
                data.putField(I_ARRAY, ((NBTTagIntArray) tag).func_150302_c());
            }
            else if (tag instanceof NBTTagByteArray)
            {
                data.putField(B_ARRAY, ((NBTTagByteArray) tag).func_150292_c());
            }
            else if (tag instanceof NBTTagList)
            {
                data.putField(TAG_LIST, tag);
            }
            else if (tag instanceof NBTBase.NBTPrimitive)
            {
                String val = tag.toString();

                if (tag.getId() != new NBTTagInt(0).getId())
                {
                    val = val.substring(0, val.length() - 1);
                }

                data.putField(PRIMITIVE, val);
            }
            datas.add(data);
        }

        return datas;
View Full Code Here

    {
        HashSet<TypeData> datas = new HashSet<TypeData>();

        Set<Entry> list = ((Map) obj).entrySet();

        TypeData data;
        for (Entry e : list)
        {
            data = getEntryData();
            data.putField(KEY, e.getKey());
            data.putField(VAL, e.getValue());
            datas.add(data);
        }

        return datas;
    }
View Full Code Here

    {
        HashSet<TypeData> datas = new HashSet<TypeData>();

        List<?> list = (List<?>) obj;

        TypeData data;
        for (int i = 0; i < list.size(); i++)
        {
            data = getEntryData();
            data.putField(POS, i);
            data.putField(ELEMENT, list.get(i));
            datas.add(data);
        }

        return datas;
    }
View Full Code Here

        if (nbt == null)
        {
            return null;
        }

        TypeData data = DataStorageManager.getDataForType(type);
        data.setUniqueKey(uniqueKey);
        ITypeInfo info = DataStorageManager.getInfoForType(type);
        readClassFromTag(nbt, data, info);

        return data;
    }
View Full Code Here

            tempType = info.getTypeOfField(childName);

            if (StorageManager.isTypeComplex(tempType))
            {
                NBTTagCompound compound = tag.getCompoundTag(childName);
                TypeData tempData = DataStorageManager.getDataForType(tempType);
                readClassFromTag(compound, tempData, info.getInfoForField(childName));
                val = tempData;
            }
            else
            {
View Full Code Here

    @Override
    public Object loadObject(ClassContainer type, String loadingKey)
    {
        Object newObject = null;
        TypeData data = loadData(type, loadingKey);
        ITypeInfo info = DataStorageManager.getInfoForType(type);

        if (data != null && data.getAllFields().size() > 0)
        {
            newObject = createFromFields(data, info);
        }

        return newObject;
View Full Code Here

TOP

Related Classes of com.forgeessentials.data.api.TypeData

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.