public void checkForPropertyConsistency() {
        for (Class clazz : classStyleMap.keys()) {
            for (StyleData styleData : classStyleMap.get(clazz)) {
                for (StyleProperty property : styleData.properties.values()) {
                    if (property.value != null) {
                        boolean keep = false;
                        if (property.type == Color.class) {
                            for (ColorData color : colors) {
                                if (property.value.equals(color.getName())) {
                                    keep = true;
                                    break;
                                }
                            }
                        } else if (property.type == BitmapFont.class) {
                            for (FontData font : fonts) {
                                if (property.value.equals(font.getName())) {
                                    keep = true;
                                    break;
                                }
                            }
                            for (FreeTypeFontData font : freeTypeFonts) {
                                if (property.value.equals(font.name)) {
                                    keep = true;
                                    break;
                                }
                            }
                        } else if (property.type == Drawable.class) {
                            for (DrawableData drawable : atlasData.getDrawables()) {
                                if (property.value.equals(drawable.name)) {
                                    keep = true;
                                    break;
                                }
                            }
                            
                            if (!keep) {
                                keep = true;
                                DrawableData customDrawable = new DrawableData((String) property.value);
                                customDrawable.type = DrawableType.CUSTOM;
                                atlasData.getDrawables().add(customDrawable);
                            }
                        } else {
                            keep = true;
                        }

                        if (!keep) {
                            property.value = null;
                        }
                    }
                }
            }
        }
        
        for (CustomClass customClass : customClasses) {
            for (CustomStyle customStyle: customClass.getStyles()) {
                for (CustomProperty customProperty : customStyle.getProperties()) {
                    if (customProperty.getValue() != null) {
                        boolean keep = false;
                        if (null == customProperty.getType()) {
                            keep = true;
                        } else switch (customProperty.getType()) {
                            case COLOR:
                                for (ColorData color : colors) {
                                    if (customProperty.getValue().equals(color.getName())) {
                                        keep = true;
                                        break;
                                    }
                                }   break;
                            case DRAWABLE:
                                for (DrawableData drawable : atlasData.getDrawables()) {
                                    if (customProperty.getValue().equals(drawable.name)) {
                                        keep = true;
                                        break;
                                    }
                                }   break;
                            case FONT:
                                for (FontData font : fonts) {
                                    if (customProperty.getValue().equals(font.getName())) {
                                        keep = true;
                                        break;
                                    }
                                }   break;
                            default:
                                keep = true;
                                break;
                        }

                        if (!keep) {
                            customProperty.setValue(null);
                        }
                    }
                }
            }
        }
    }
Imports skin data from a JSON file. Supports skins from libGDX 1.9.10
@param fileHandle
@return
@throws Exception
core/src/com/ray3k/skincomposer/data/JsonData.java