// Path: node-projects/src/main/java/org/netbeans/modules/nodejs/json/ObjectMapperProvider.java
// public class ObjectMapperProvider {
//     public static ObjectMapper newObjectMapper () {
//         ObjectMapper m = new ObjectMapper();
//         m.configure( JsonParser.Feature.ALLOW_COMMENTS, true );
//         m.configure( DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true );
//         m.configure( SerializationFeature.INDENT_OUTPUT, true );
//         m.configure( SerializationFeature.ORDER_MAP_ENTRIES_BY_KEYS, true );
//         m.configure( SerializationFeature.WRITE_CHAR_ARRAYS_AS_JSON_ARRAYS, true );
//         m.configure( JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true );
//         m.configure( JsonParser.Feature.AUTO_CLOSE_SOURCE, true );
//         return m;
//     }
// 
//     public static final TypeReference<Map<String,Object>> STRING_OBJECT_MAP
//             = new TR();
// 
//     private static final class TR extends TypeReference<Map<String,Object>> {
//     }
// }
// 
// Path: node-projects/src/main/java/org/netbeans/modules/nodejs/json/ObjectMapperProvider.java
// public static final TypeReference<Map<String,Object>> STRING_OBJECT_MAP
//         = new TR();


import java.io.File;
import java.io.IOException;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import org.netbeans.modules.nodejs.json.ObjectMapperProvider;
import static org.netbeans.modules.nodejs.json.ObjectMapperProvider.STRING_OBJECT_MAP;
import org.openide.WizardDescriptor;
import org.openide.filesystems.FileObject;
import org.openide.filesystems.FileUtil;
import org.openide.util.Lookup;
        return false;
    }

    public void remove ( NodeJSExecutable exe ) {
        throw new UnsupportedOperationException();
    }

    @Override
    public int compareTo ( NodeJSPlatformType t ) {
        return displayName().compareTo( t.displayName() );
    }

    public boolean equals ( Object o ) {
        return o instanceof NodeJSPlatformType && name().equals( ((NodeJSPlatformType) o).name() );
    }

    public int hashCode () {
        return name().hashCode();
    }

    public String toString () {
        return name();
    }

    public List<WizardDescriptor.Panel<WizardDescriptor>> getAddPlatformWizardPages () {
        return Collections.emptyList();
    }

    public static Map<String, Object> toJson ( File outFile ) throws IOException {
        FileObject fo = FileUtil.toFileObject( FileUtil.normalizeFile( outFile ) );
// Path: node-projects/src/main/java/org/netbeans/modules/nodejs/json/ObjectMapperProvider.java
// public class ObjectMapperProvider {
//     public static ObjectMapper newObjectMapper () {
//         ObjectMapper m = new ObjectMapper();
//         m.configure( JsonParser.Feature.ALLOW_COMMENTS, true );
//         m.configure( DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true );
//         m.configure( SerializationFeature.INDENT_OUTPUT, true );
//         m.configure( SerializationFeature.ORDER_MAP_ENTRIES_BY_KEYS, true );
//         m.configure( SerializationFeature.WRITE_CHAR_ARRAYS_AS_JSON_ARRAYS, true );
//         m.configure( JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true );
//         m.configure( JsonParser.Feature.AUTO_CLOSE_SOURCE, true );
//         return m;
//     }
// 
//     public static final TypeReference<Map<String,Object>> STRING_OBJECT_MAP
//             = new TR();
// 
//     private static final class TR extends TypeReference<Map<String,Object>> {
//     }
// }
// 
// Path: node-projects/src/main/java/org/netbeans/modules/nodejs/json/ObjectMapperProvider.java
// public static final TypeReference<Map<String,Object>> STRING_OBJECT_MAP
//         = new TR();


// Path: node-projects/src/main/java/org/netbeans/modules/nodejs/api/NodeJSPlatformType.java
import java.io.File;
import java.io.IOException;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import org.netbeans.modules.nodejs.json.ObjectMapperProvider;
import static org.netbeans.modules.nodejs.json.ObjectMapperProvider.STRING_OBJECT_MAP;
import org.openide.WizardDescriptor;
import org.openide.filesystems.FileObject;
import org.openide.filesystems.FileUtil;
import org.openide.util.Lookup;

        return false;
    }

    public void remove ( NodeJSExecutable exe ) {
        throw new UnsupportedOperationException();
    }

    @Override
    public int compareTo ( NodeJSPlatformType t ) {
        return displayName().compareTo( t.displayName() );
    }

    public boolean equals ( Object o ) {
        return o instanceof NodeJSPlatformType && name().equals( ((NodeJSPlatformType) o).name() );
    }

    public int hashCode () {
        return name().hashCode();
    }

    public String toString () {
        return name();
    }

    public List<WizardDescriptor.Panel<WizardDescriptor>> getAddPlatformWizardPages () {
        return Collections.emptyList();
    }

    public static Map<String, Object> toJson ( File outFile ) throws IOException {
        FileObject fo = FileUtil.toFileObject( FileUtil.normalizeFile( outFile ) );
        Map<String, Object> m = ObjectMapperProvider.newObjectMapper().readValue( fo.asText(), STRING_OBJECT_MAP);