Example usage for com.badlogic.gdx.utils.reflect Field isTransient

List of usage examples for com.badlogic.gdx.utils.reflect Field isTransient

Introduction

In this page you can find the example usage for com.badlogic.gdx.utils.reflect Field isTransient.

Prototype

public boolean isTransient() 

Source Link

Document

Return true if the field includes the transient modifier.

Usage

From source file:org.shadebob.skineditor.utils.scenes.scene2d.ui.CustomSkin.java

License:Apache License

/** ?? */
public static <T> boolean isResInUse(Skin skin, T target) {
    if (skin == null || target == null) {
        throw new IllegalArgumentException("skin and target can not null");
    }/*  w w  w  .ja v a  2 s . c o  m*/
    try {
        Class<?> clazzTarget = target.getClass();
        for (String widget : SkinEditorGame.widgets) {
            Class<?> resType = Class
                    .forName("com.badlogic.gdx.scenes.scene2d.ui." + widget + "$" + widget + "Style");
            // ?
            if (resType == clazzTarget) {
                continue;
            }
            ObjectMap<String, ?> typeResources = skin.getAll(resType);
            if (emptyMap(typeResources)) {
                continue;
            }
            //  styleName ?.???
            Array<String> styleNames = typeResources.keys().toArray();
            // ??? resType ? ?
            for (String styleName : styleNames) {
                Object objStyle = typeResources.get(styleName);
                Field[] fields = ClassReflection.getFields(objStyle.getClass());
                for (Field field : fields) {
                    //  field
                    if (field.isFinal() || field.isStatic() || field.isTransient()) {
                        continue;
                    }
                    if (field.getType() == clazzTarget) {
                        @SuppressWarnings("unchecked")
                        T f = (T) field.get(objStyle);
                        if (target.equals(f)) {
                            return true;
                        }
                    }
                }
            }
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    return false;
}

From source file:org.shadebob.skineditor.utils.scenes.scene2d.ui.CustomSkin.java

License:Apache License

/** ?? */
public static <T> boolean isStyleInUse(Skin skin, String targetStyleName, Class<T> targetStyleClazz) {
    if (skin == null || targetStyleName == null || targetStyleName.trim().length() == 0
            || targetStyleClazz == null) {
        throw new IllegalArgumentException("skin?targetStyleName and targetStyleClazz can not null");
    }// w w  w  .  j  a v a 2  s  . com
    try {
        for (String widget : SkinEditorGame.widgets) {
            Class<?> resType = Class
                    .forName("com.badlogic.gdx.scenes.scene2d.ui." + widget + "$" + widget + "Style");
            // ?
            if (resType == targetStyleClazz) {
                continue;
            }
            ObjectMap<String, ?> typeResources = skin.getAll(resType);
            if (emptyMap(typeResources)) {
                continue;
            }
            //  styleName ?.???
            Array<String> styleNames = typeResources.keys().toArray();
            // ??? resType ? ?
            for (String styleName : styleNames) {
                Object objStyle = typeResources.get(styleName);
                Field[] fields = ClassReflection.getFields(objStyle.getClass());
                for (Field field : fields) {
                    //  field
                    if (field.isFinal() || field.isStatic() || field.isTransient()) {
                        continue;
                    }
                    if (field.getType() == targetStyleClazz) {
                        @SuppressWarnings("unchecked")
                        T fieldObj = (T) field.get(objStyle);
                        String fieldObjStyleName = skin.find(fieldObj);
                        if (targetStyleName.equals(fieldObjStyleName)) {
                            return true;
                        }
                    }
                }
            }
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    return false;
}

From source file:com.libgdx.skin.editor.utils.scene2d.CustomSkin.java

License:Apache License

/** ?? */
public static <T> boolean isResInUse(Skin skin, T target) {
    if (skin == null || target == null) {
        throw new IllegalArgumentException("skin and target can not null");
    }//  ww  w  .  ja  v  a 2s . co  m
    try {
        Class<?> clazzTarget = target.getClass();
        for (String widget : widgets) {
            Class<?> resType = Class
                    .forName("com.badlogic.gdx.scenes.scene2d.ui." + widget + "$" + widget + "Style");
            // ?
            if (resType == clazzTarget) {
                continue;
            }
            ObjectMap<String, ?> typeResources = skin.getAll(resType);
            if (emptyMap(typeResources)) {
                continue;
            }
            //  styleName ?.???
            Array<String> styleNames = typeResources.keys().toArray();
            // ??? resType ? ?
            for (String styleName : styleNames) {
                Object objStyle = typeResources.get(styleName);
                Field[] fields = ClassReflection.getFields(objStyle.getClass());
                for (Field field : fields) {
                    //  field
                    if (field.isFinal() || field.isStatic() || field.isTransient()) {
                        continue;
                    }
                    if (field.getType() == clazzTarget) {
                        @SuppressWarnings("unchecked")
                        T f = (T) field.get(objStyle);
                        if (target.equals(f)) {
                            return true;
                        }
                    }
                }
            }
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    return false;
}

From source file:com.libgdx.skin.editor.utils.scene2d.CustomSkin.java

License:Apache License

/** ?? */
public static <T> boolean isStyleInUse(Skin skin, String targetStyleName, Class<T> targetStyleClazz) {
    if (skin == null || targetStyleName == null || targetStyleName.trim().length() == 0
            || targetStyleClazz == null) {
        throw new IllegalArgumentException("skin?targetStyleName and targetStyleClazz can not null");
    }//from  w ww.  j  av a  2 s.  c  o  m
    try {
        for (String widget : widgets) {
            Class<?> resType = Class
                    .forName("com.badlogic.gdx.scenes.scene2d.ui." + widget + "$" + widget + "Style");
            // ?
            if (resType == targetStyleClazz) {
                continue;
            }
            ObjectMap<String, ?> typeResources = skin.getAll(resType);
            if (emptyMap(typeResources)) {
                continue;
            }
            //  styleName ?.???
            Array<String> styleNames = typeResources.keys().toArray();
            // ??? resType ? ?
            for (String styleName : styleNames) {
                Object objStyle = typeResources.get(styleName);
                Field[] fields = ClassReflection.getFields(objStyle.getClass());
                for (Field field : fields) {
                    //  field
                    if (field.isFinal() || field.isStatic() || field.isTransient()) {
                        continue;
                    }
                    if (field.getType() == targetStyleClazz) {
                        @SuppressWarnings("unchecked")
                        T fieldObj = (T) field.get(objStyle);
                        String fieldObjStyleName = skin.find(fieldObj);
                        if (targetStyleName.equals(fieldObjStyleName)) {
                            return true;
                        }
                    }
                }
            }
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    return false;
}

From source file:com.libgdx.skin.editor.utils.scene2d.CustomSkin.java

License:Apache License

void write1Style(Json json, Class<? extends Object> resType, ObjectMap<String, ? extends Object> typeResources,
        String styleName) {/* w  ww .j  a v  a 2  s  . c om*/
    //  name  style
    Object objStyle = typeResources.get(styleName);
    Field[] fields = ClassReflection.getFields(resType);

    // ? BitmapFont? fields? fields  0
    if (objStyle instanceof com.badlogic.gdx.graphics.g2d.BitmapFont) {
        BitmapFont font = (BitmapFont) objStyle;
        json.writeValue("file", font.getData().fontFile.name());
        return;
    }

    // Handle fields
    for (Field field : fields) {
        //  field
        if (field.isFinal() || field.isStatic() || field.isTransient()) {
            continue;
        }
        try {
            write1Filed(json, objStyle, field);
        } catch (Exception e) {
            String tag = getClass().getSimpleName();
            String message = String.format("resTypes:%s  field:%s  json ", resType, field);
            Gdx.app.debug(tag, message, e);
        }
    }
}

From source file:mt.Json.java

License:Apache License

private ObjectMap<String, FieldMetadata> cacheFields(Class type) {
    ArrayList<Field> allFields = new ArrayList();
    Class nextClass = type;//from  w ww .  j  ava2  s . c o m
    while (nextClass != Object.class) {
        Collections.addAll(allFields, ClassReflection.getDeclaredFields(nextClass));
        nextClass = nextClass.getSuperclass();
    }

    ObjectMap<String, FieldMetadata> nameToField = new ObjectMap();
    for (int i = 0, n = allFields.size(); i < n; i++) {
        Field field = allFields.get(i);

        if (field.isTransient())
            continue;
        if (field.isStatic())
            continue;
        if (field.isSynthetic())
            continue;

        if (!field.isAccessible()) {
            try {
                field.setAccessible(true);
            } catch (AccessControlException ex) {
                continue;
            }
        }

        nameToField.put(field.getName(), new FieldMetadata(field));
    }
    typeToFields.put(type, nameToField);
    return nameToField;
}