|
What this is
Other links
The source code/* * Sun Public License Notice * * The contents of this file are subject to the Sun Public License * Version 1.0 (the "License"). You may not use this file except in * compliance with the License. A copy of the License is available at * http://www.sun.com/ * * The Original Code is NetBeans. The Initial Developer of the Original * Code is Sun Microsystems, Inc. Portions Copyright 1997-2004 Sun * Microsystems, Inc. All Rights Reserved. */ package org.netbeans.modules.java.j2seproject.ui.customizer; import java.io.File; import java.io.IOException; import java.text.Collator; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Set; import org.netbeans.api.java.platform.JavaPlatform; import org.netbeans.api.java.platform.JavaPlatformManager; import org.netbeans.api.java.platform.Specification; import org.netbeans.api.project.Project; import org.netbeans.api.project.ProjectManager; import org.netbeans.api.project.ProjectUtils; import org.netbeans.api.project.libraries.LibraryManager; import org.netbeans.api.project.libraries.Library; import org.netbeans.api.project.ant.AntArtifact; import org.netbeans.api.queries.CollocationQuery; import org.netbeans.modules.java.j2seproject.J2SEProjectType; import org.netbeans.spi.project.SubprojectProvider; import org.netbeans.spi.project.support.ant.AntProjectHelper; import org.netbeans.spi.project.support.ant.EditableProperties; import org.netbeans.spi.project.support.ant.PropertyEvaluator; import org.netbeans.spi.project.support.ant.PropertyUtils; import org.netbeans.spi.project.support.ant.ReferenceHelper; import org.openide.ErrorManager; import org.openide.filesystems.FileUtil; import org.openide.modules.SpecificationVersion; import org.openide.util.MutexException; import org.openide.util.Mutex; import org.openide.util.NbBundle; import org.w3c.dom.Element; import org.w3c.dom.NodeList; /** Helper class. Defines constants for properties. Knows the proper * place where to store the properties. * * @author Petr Hrebejk */ public class J2SEProjectProperties { // Special properties of the project public static final String J2SE_PROJECT_NAME = "j2se.project.name"; // NOI18N public static final String JAVA_PLATFORM = "platform.active"; // NOI18N // Properties stored in the PROJECT.PROPERTIES public static final String DIST_DIR = "dist.dir"; // NOI18N public static final String DIST_JAR = "dist.jar"; // NOI18N public static final String JAVAC_CLASSPATH = "javac.classpath"; // NOI18N public static final String RUN_CLASSPATH = "run.classpath"; // NOI18N public static final String RUN_JVM_ARGS = "run.jvmargs"; // NOI18N public static final String RUN_WORK_DIR = "work.dir"; // NOI18N public static final String DEBUG_CLASSPATH = "debug.classpath"; // NOI18N public static final String JAR_COMPRESS = "jar.compress"; // NOI18N public static final String MAIN_CLASS = "main.class"; // NOI18N public static final String JAVAC_SOURCE = "javac.source"; // NOI18N public static final String JAVAC_TARGET = "javac.target"; // NOI18N public static final String JAVAC_TEST_CLASSPATH = "javac.test.classpath"; // NOI18N public static final String JAVAC_DEBUG = "javac.debug"; // NOI18N public static final String JAVAC_DEPRECATION = "javac.deprecation"; // NOI18N public static final String JAVAC_COMPILER_ARG = "javac.compilerargs"; //NOI18N public static final String RUN_TEST_CLASSPATH = "run.test.classpath"; // NOI18N public static final String SRC_DIR = "src.dir"; // NOI18N public static final String TEST_SRC_DIR = "test.src.dir"; // NOI18N public static final String BUILD_DIR = "build.dir"; // NOI18N public static final String BUILD_CLASSES_DIR = "build.classes.dir"; // NOI18N public static final String BUILD_TEST_CLASSES_DIR = "build.test.classes.dir"; // NOI18N public static final String BUILD_TEST_RESULTS_DIR = "build.test.results.dir"; // NOI18N public static final String BUILD_CLASSES_EXCLUDES = "build.classes.excludes"; // NOI18N public static final String DIST_JAVADOC_DIR = "dist.javadoc.dir"; // NOI18N public static final String NO_DEPENDENCIES="no.dependencies"; // NOI18N public static final String DEBUG_TEST_CLASSPATH = "debug.test.classpath"; // NOI18N public static final String JAVADOC_PRIVATE="javadoc.private"; // NOI18N public static final String JAVADOC_NO_TREE="javadoc.notree"; // NOI18N public static final String JAVADOC_USE="javadoc.use"; // NOI18N public static final String JAVADOC_NO_NAVBAR="javadoc.nonavbar"; // NOI18N public static final String JAVADOC_NO_INDEX="javadoc.noindex"; // NOI18N public static final String JAVADOC_SPLIT_INDEX="javadoc.splitindex"; // NOI18N public static final String JAVADOC_AUTHOR="javadoc.author"; // NOI18N public static final String JAVADOC_VERSION="javadoc.version"; // NOI18N public static final String JAVADOC_WINDOW_TITLE="javadoc.windowtitle"; // NOI18N public static final String JAVADOC_ENCODING="javadoc.encoding"; // NOI18N // Properties stored in the PRIVATE.PROPERTIES public static final String APPLICATION_ARGS = "application.args"; // NOI18N public static final String JAVADOC_PREVIEW="javadoc.preview"; // NOI18N // Shortcuts private static final String PROJECT = AntProjectHelper.PROJECT_PROPERTIES_PATH; private static final String PRIVATE = AntProjectHelper.PRIVATE_PROPERTIES_PATH; private static final int IDX_PROJECT = 0; private static final int IDX_PRIVATE = 1; private static final PropertyParser STRING_PARSER = new StringParser(); private static final BooleanParser BOOLEAN_PARSER = new BooleanParser(); private static final InverseBooleanParser INVERSE_BOOLEAN_PARSER = new InverseBooleanParser(); private static final PropertyParser PATH_PARSER = new PathParser(); private static final PlatformParser PLATFORM_PARSER = new PlatformParser(); // Info about the property destination private PropertyDescriptor PROPERTY_DESCRIPTORS[] = { new PropertyDescriptor( J2SE_PROJECT_NAME, null, STRING_PARSER ), new PropertyDescriptor( DIST_DIR, PROJECT, STRING_PARSER ), new PropertyDescriptor( DIST_JAR, PROJECT, STRING_PARSER ), new PropertyDescriptor( JAVAC_CLASSPATH, PROJECT, PATH_PARSER ), new PropertyDescriptor( RUN_CLASSPATH, PROJECT, PATH_PARSER ), new PropertyDescriptor( RUN_JVM_ARGS, PROJECT, STRING_PARSER ), new PropertyDescriptor( RUN_WORK_DIR, PRIVATE, STRING_PARSER ), new PropertyDescriptor( DEBUG_CLASSPATH, PROJECT, PATH_PARSER ), new PropertyDescriptor( JAR_COMPRESS, PROJECT, BOOLEAN_PARSER ), new PropertyDescriptor( MAIN_CLASS, PROJECT, STRING_PARSER ), new PropertyDescriptor( JAVAC_TEST_CLASSPATH, PROJECT, PATH_PARSER ), new PropertyDescriptor( JAVAC_DEBUG, PRIVATE, BOOLEAN_PARSER ), new PropertyDescriptor( JAVAC_DEPRECATION, PROJECT, BOOLEAN_PARSER ), new PropertyDescriptor( JAVAC_COMPILER_ARG, PROJECT, STRING_PARSER), new PropertyDescriptor( RUN_TEST_CLASSPATH, PROJECT, PATH_PARSER ), new PropertyDescriptor( SRC_DIR, PROJECT, STRING_PARSER ), new PropertyDescriptor( TEST_SRC_DIR, PROJECT, STRING_PARSER ), new PropertyDescriptor( BUILD_DIR, PROJECT, STRING_PARSER ), new PropertyDescriptor( BUILD_CLASSES_DIR, PROJECT, STRING_PARSER ), new PropertyDescriptor( BUILD_TEST_CLASSES_DIR, PROJECT, STRING_PARSER ), new PropertyDescriptor( BUILD_TEST_RESULTS_DIR, PROJECT, STRING_PARSER ), new PropertyDescriptor( BUILD_CLASSES_EXCLUDES, PROJECT, STRING_PARSER ), new PropertyDescriptor( DIST_JAVADOC_DIR, PROJECT, STRING_PARSER ), new PropertyDescriptor( APPLICATION_ARGS, PRIVATE, STRING_PARSER ), new PropertyDescriptor( NO_DEPENDENCIES, PROJECT, INVERSE_BOOLEAN_PARSER ), new PropertyDescriptor( JAVA_PLATFORM, PROJECT, PLATFORM_PARSER ), new PropertyDescriptor( DEBUG_TEST_CLASSPATH, PROJECT, PATH_PARSER ), new PropertyDescriptor( JAVADOC_PRIVATE, PROJECT, BOOLEAN_PARSER ), new PropertyDescriptor( JAVADOC_NO_TREE, PROJECT, INVERSE_BOOLEAN_PARSER ), new PropertyDescriptor( JAVADOC_USE, PROJECT, BOOLEAN_PARSER ), new PropertyDescriptor( JAVADOC_NO_NAVBAR, PROJECT, INVERSE_BOOLEAN_PARSER ), new PropertyDescriptor( JAVADOC_NO_INDEX, PROJECT, INVERSE_BOOLEAN_PARSER ), new PropertyDescriptor( JAVADOC_SPLIT_INDEX, PROJECT, BOOLEAN_PARSER ), new PropertyDescriptor( JAVADOC_AUTHOR, PROJECT, BOOLEAN_PARSER ), new PropertyDescriptor( JAVADOC_VERSION, PROJECT, BOOLEAN_PARSER ), new PropertyDescriptor( JAVADOC_WINDOW_TITLE, PROJECT, STRING_PARSER ), new PropertyDescriptor( JAVADOC_ENCODING, PROJECT, STRING_PARSER ), new PropertyDescriptor( JAVADOC_PREVIEW, PRIVATE, BOOLEAN_PARSER ), }; // Private fields ---------------------------------------------------------- private Project project; private HashMap properties; private AntProjectHelper antProjectHelper; private PropertyEvaluator evaluator; private ReferenceHelper refHelper; public J2SEProjectProperties( Project project, AntProjectHelper antProjectHelper, PropertyEvaluator evaluator, ReferenceHelper refHelper ) { this.project = project; this.properties = new HashMap(); this.antProjectHelper = antProjectHelper; this.evaluator = evaluator; this.refHelper = refHelper; read(); } /** XXX to be deleted when introduced in AntPropertyHeleper API */ static String getAntPropertyName( String property ) { if ( property != null && property.startsWith( "${" ) && // NOI18N property.endsWith( "}" ) ) { // NOI18N return property.substring( 2, property.length() - 1 ); } else { return property; } } static boolean isAntProperty (String string) { return string != null && string.startsWith( "${" ) && string.endsWith( "}" ); //NOI18N } public void put( String propertyName, Object value ) { PropertyInfo pi = (PropertyInfo)properties.get( propertyName ); assert propertyName != null : "Unknown property " + propertyName; // NOI18N pi.setValue( value ); } public Object get( String propertyName ) { PropertyInfo pi = (PropertyInfo)properties.get( propertyName ); assert propertyName != null : "Unknown property " + propertyName; // NOI18N return pi.getValue(); } public boolean isModified( String propertyName ) { PropertyInfo pi = (PropertyInfo)properties.get( propertyName ); assert propertyName != null : "Unknown property " + propertyName; // NOI18N return pi.isModified(); } public List getSortedSubprojectsList() { ArrayList subprojects = new ArrayList( 5 ); addSubprojects( project, subprojects ); // Find the projects recursively // Replace projects in the list with formated names for ( int i = 0; i < subprojects.size(); i++ ) { Project p = (Project)subprojects.get( i ); subprojects.set(i, ProjectUtils.getInformation(p).getDisplayName()); } // Sort the list Collections.sort( subprojects, Collator.getInstance() ); return subprojects; } Project getProject() { return project; } /** Gets all subprojects recursively */ private void addSubprojects( Project project, List result ) { SubprojectProvider spp = (SubprojectProvider)project.getLookup().lookup( SubprojectProvider.class ); if ( spp == null ) { return; } for( Iterator/* |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.