Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
   *
   * Copyright 1997-2007 Sun Microsystems, Inc. All rights reserved.
   *
   * The contents of this file are subject to the terms of either the GNU
   * General Public License Version 2 only ("GPL") or the Common
   * Development and Distribution License("CDDL") (collectively, the
   * "License"). You may not use this file except in compliance with the
  * License. You can obtain a copy of the License at
  * http://www.netbeans.org/cddl-gplv2.html
  * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
  * specific language governing permissions and limitations under the
  * License.  When distributing the software, include this License Header
  * Notice in each file and include the License file at
  * nbbuild/licenses/CDDL-GPL-2-CP.  Sun designates this
  * particular file as subject to the "Classpath" exception as provided
  * by Sun in the GPL Version 2 section of the License file that
  * accompanied this code. If applicable, add the following below the
  * License Header, with the fields enclosed by brackets [] replaced by
  * your own identifying information:
  * "Portions Copyrighted [year] [name of copyright owner]"
  *
  * Contributor(s):
  *
  * The Original Software is NetBeans. The Initial Developer of the Original
  * Software is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun
  * Microsystems, Inc. All Rights Reserved.
  *
  * If you wish your version of this file to be governed by only the CDDL
  * or only the GPL Version 2, indicate your decision by adding
  * "[Contributor] elects to include this software in this distribution
  * under the [CDDL or GPL Version 2] license." If you do not indicate a
  * single choice of license, a recipient has the option to distribute
  * your version of this file under either the CDDL, the GPL Version 2 or
  * to extend the choice of license to its licensees as provided above.
  * However, if you add GPL Version 2 code and therefore, elected the GPL
  * Version 2 license, then the option applies only if the new code is
  * made subject to such option by the copyright holder.
  */
 package org.netbeans.modules.cnd.makeproject.api.configurations;
 
 import java.io.File;
 import java.util.Date;
 
 public class ItemConfiguration implements ConfigurationAuxObject {
 
     private boolean needSave = false;
     private Configuration configuration;
     private Item item;
     // General
     private BooleanConfiguration excluded;
     private byte tool = -1;
     // Tools
 
     // cached id of item
 //    private String id;
     public ItemConfiguration(Configuration configurationItem item) {
         // General
         this. = configuration;
         setItem(item);
          = new BooleanConfiguration(nullfalse);
 
         // This is side effect of lazy configuration. We should init folder configuration
         // TODO: remove folder initialization. Folder should be responsible for it
         item.getFolder().getFolderConfiguration(configuration);
 
         clearChanged();
     }
 
     public ItemConfiguration(ItemConfiguration itemConfiguration) {
         this. = itemConfiguration.configuration;
         this. = itemConfiguration.item;
         this. = itemConfiguration.excluded;
         this. = itemConfiguration.needSave;
         this. = itemConfiguration.tool;
         this. = itemConfiguration.lastConfiguration;
     }
 
     public boolean isDefaultConfiguration() {
         if (.getValue()) {
             return false;
         }
         if (getTool() != .getDefaultTool()) {
            return false;
        }
        if ( != null && .getModified()) {
            return false;
        }
        return true;
    }
    public boolean isCompilerToolConfiguration() {
        switch (getTool()) {
            case .:
            case .:
            case .:
            case .:
                return true;
        }
        return false;
    }
        switch (getTool()) {
            case .:
                return getAssemblerConfiguration();
            case .:
                return getCCCompilerConfiguration();
            case .:
                return getCCompilerConfiguration();
            case .:
                return getFortranCompilerConfiguration();
        }
        return null;
    }
    public Configuration getConfiguration() {
        return ;
    }
    public void setConfiguration(Configuration configuration) {
        this. = configuration;
    }
    public Item getItem() {
        return ;
    }
    private void setItem(Item item) {
        if (this. != item) {
            this. = item;
            this. = true;
//            this.id = null;
        //this.tool = item.getDefaultTool();
        }
    }
    // General
    public BooleanConfiguration getExcluded() {
        return ;
    }
    public void setExcluded(BooleanConfiguration excluded) {
        this. = excluded;
         = true;
    }
    // Tool
    public void setTool(String name) {
//        if (genericName != null) {
//            CompilerSet set = CompilerSetManager.getDefault(((MakeConfiguration)configuration).getDevelopmentHost().getName()).getCompilerSet(((MakeConfiguration)configuration).getCompilerSet().getValue());
//            tool = set.getToolKind(genericName);
//        }
        setTool(Tool.getTool(name));
    }
    public void setTool(int tool) {
        if (this. != tool){
             = null;
        }
        this. = (byte)tool;
   }
    public int getTool() {
        if ( == -1) {
             = (byte).getDefaultTool();
        }
        return ;
    }
//    protected String getToolName() {
//        CompilerSet set = CompilerSetManager.getDefault(((MakeConfiguration)configuration).getDevelopmentHost().getName()).getCompilerSet(((MakeConfiguration)configuration).getCompilerSet().getValue());
//        return set.getTool(getTool()).getName();
//    }
    protected String[] getToolNames() {
//        CompilerSet set = CompilerSetManager.getDefault(((MakeConfiguration)configuration).getDevelopmentHost().getName()).getCompilerSet(((MakeConfiguration)configuration).getCompilerSet().getValue());
//        return set.getToolGenericNames();
        return Tool.getCompilerToolNames();
    }
    // Custom Tool
    public void setCustomToolConfiguration(CustomToolConfiguration customToolConfiguration) {
        this. = customToolConfiguration;
    }
    public synchronized CustomToolConfiguration getCustomToolConfiguration() {
        if (getTool() == .) {
            if ( == null) {
                 = new CustomToolConfiguration();
            }
            assert  instanceof CustomToolConfiguration;
            return  (CustomToolConfiguration;
        }
        return null;
    }
    // C Compiler
    public void setCCompilerConfiguration(CCompilerConfiguration cCompilerConfiguration) {
        this. = cCompilerConfiguration;
    }
    public synchronized CCompilerConfiguration getCCompilerConfiguration() {
        if (getTool() == .) {
            if ( == null) {
                FolderConfiguration folderConfiguration = .getFolder().getFolderConfiguration();
                if (folderConfiguration != null) {
                     = new CCompilerConfiguration(((MakeConfiguration).getBaseDir(), folderConfiguration.getCCompilerConfiguration());
                } else {
                     = new CCompilerConfiguration(((MakeConfiguration).getBaseDir(), null);
                }
            }
            assert  instanceof CCompilerConfiguration;
            return  (CCompilerConfiguration;
        }
        return null;
    }
    // CC Compiler
    public void setCCCompilerConfiguration(CCCompilerConfiguration ccCompilerConfiguration) {
        this. = ccCompilerConfiguration;
    }
    public synchronized CCCompilerConfiguration getCCCompilerConfiguration() {
        if (getTool() == .) {
            if ( == null) {
                FolderConfiguration folderConfiguration = .getFolder().getFolderConfiguration();
                if (folderConfiguration != null) {
                     = new CCCompilerConfiguration(((MakeConfiguration).getBaseDir(), folderConfiguration.getCCCompilerConfiguration());
                } else {
                     = new CCCompilerConfiguration(((MakeConfiguration).getBaseDir(), null);
                }
            }
            assert  instanceof CCCompilerConfiguration;
            return  (CCCompilerConfiguration;
        }
        return null;
    }
    // Fortran Compiler
    public void setFortranCompilerConfiguration(FortranCompilerConfiguration fortranCompilerConfiguration) {
        this. = fortranCompilerConfiguration;
    }
        if (getTool() == .) {
            if ( == null) {
            }
            assert  instanceof FortranCompilerConfiguration;
            return  (FortranCompilerConfiguration;
        }
        return null;
    }
    // Assembler
    public void setAssemblerConfiguration(AssemblerConfiguration assemblerConfiguration) {
        this. = assemblerConfiguration;
    }
    public synchronized AssemblerConfiguration getAssemblerConfiguration() {
        if (getTool() == .) {
            if ( == null) {
            }
            assert  instanceof AssemblerConfiguration;
            return  (AssemblerConfiguration;
        }
        return null;
    }
    // interface ConfigurationAuxObject
    public boolean shared() {
        return true;
    }
    // interface ConfigurationAuxObject
    public boolean hasChanged() {
        return ;
    }
    // interface ProfileAuxObject
    public void clearChanged() {
         = false;
    }

    
Returns an unique id (String) used to retrive this object from the pool of aux objects
//    public String getId() {
//        if (this.id == null) {
//            this.id = getId(getItem().getPath());
//        }
//        assert this.id != null;
//        return this.id;
//    }
//    
//    static public String getId(String path) {
//        return "item-" + path; // NOI18N
//    }
    public String getId() {
        return .getId();
    }
    public void assign(ConfigurationAuxObject profileAuxObject) {
        if (!(profileAuxObject instanceof ItemConfiguration)) {
            // FIXUP: exception ????
            ..println("Item - assign: Profile object type expected - got " + profileAuxObject); // NOI18N
            return;
        }
        ItemConfiguration i = (ItemConfigurationprofileAuxObject;
        if (!getId().equals(i.getItem().getId())) {
            ..println("Item - assign: Item ID " + getId() + " expected - got " + i.getItem().getId()); // NOI18N
            return;
        }
        setItem(i.getItem());
        getExcluded().assign(i.getExcluded());
        setTool(i.getTool());
        switch (getTool()) {
            case .:
                getAssemblerConfiguration().assign(i.getAssemblerConfiguration());
                break;
            case .:
                getCCCompilerConfiguration().assign(i.getCCCompilerConfiguration());
                break;
            case .:
                getCCompilerConfiguration().assign(i.getCCompilerConfiguration());
                break;
            case .:
                getCustomToolConfiguration().assign(i.getCustomToolConfiguration());
                break;
            case .:
                break;
            default:
                assert false;
        }
    }
    public void assignValues(ConfigurationAuxObject profileAuxObject) {
        if (!(profileAuxObject instanceof ItemConfiguration)) {
            // FIXUP: exception ????
            ..println("Item - assign: Profile object type expected - got " + profileAuxObject); // NOI18N
            return;
        }
        ItemConfiguration i = (ItemConfigurationprofileAuxObject;
        getExcluded().assign(i.getExcluded());
        setTool(i.getTool());
        switch (getTool()) {
            case .:
                getAssemblerConfiguration().assign(i.getAssemblerConfiguration());
                break;
            case .:
                getCCCompilerConfiguration().assign(i.getCCCompilerConfiguration());
                break;
            case .:
                getCCompilerConfiguration().assign(i.getCCompilerConfiguration());
                break;
            case .:
                getCustomToolConfiguration().assign(i.getCustomToolConfiguration());
                break;
            case .:
                break;
            default:
                assert false;
        }
    }
    public ItemConfiguration copy(MakeConfiguration makeConfiguration) {
        ItemConfiguration copy = new ItemConfiguration(makeConfigurationgetItem());
        // safe using
        copy.assign(this);
        copy.setConfiguration(makeConfiguration);
        return copy;
    }
    @Override
    public ItemConfiguration clone(Configuration conf) {
        ItemConfiguration i = new ItemConfiguration(confgetItem());
        i.setExcluded(getExcluded().clone());
        i.setTool(getTool());
        switch (getTool()) {
            case .:
                i.setAssemblerConfiguration(getAssemblerConfiguration().clone());
                break;
            case .:
                i.setCCCompilerConfiguration(getCCCompilerConfiguration().clone());
                break;
            case .:
                i.setCCompilerConfiguration(getCCompilerConfiguration().clone());
                break;
            case .:
                i.setCustomToolConfiguration(getCustomToolConfiguration().clone());
                break;
            case .:
                break;
            default:
                assert false;
        }
        return i;
    }
    //
    // XML codec support
    public XMLDecoder getXMLDecoder() {
        return new ItemXMLCodec(this);
    }
    public XMLEncoder getXMLEncoder() {
        return new ItemXMLCodec(this);
    }
    public void initialize() {
        // FIXUP: this doesn't make sense...
    }
    public Sheet getGeneralSheet() {
        Sheet sheet = new Sheet();
        Sheet.Set set = new Sheet.Set();
        set.setName("Item"); // NOI18N
        set.setDisplayName(getString("ItemTxt"));
        set.setShortDescription(getString("ItemHint"));
        set.put(new StringRONodeProp(getString("NameTxt"), IpeUtils.getBaseName(.getPath())));
        set.put(new StringRONodeProp(getString("FilePathTxt"), .getPath()));
        String fullPath = IpeUtils.toAbsolutePath(((MakeConfiguration).getBaseDir(), .getPath());
        String mdate = ""// NOI18N
        File itemFile = new File(fullPath);
        if (itemFile.exists()) {
            mdate = DateFormat.getDateInstance().format(new Date(itemFile.lastModified()));
            mdate += " " + DateFormat.getTimeInstance().format(new Date(itemFile.lastModified())); // NOI18N
        }
        set.put(new StringRONodeProp(getString("FullFilePathTxt"), fullPath));
        set.put(new StringRONodeProp(getString("LastModifiedTxt"), mdate));
        sheet.put(set);
        set = new Sheet.Set();
        set.setName("ItemConfiguration"); // NOI18N
        set.setDisplayName(getString("ItemConfigurationTxt"));
        set.setShortDescription(getString("ItemConfigurationHint"));
        if ((getConfiguration() instanceof MakeConfiguration) &&
                ((MakeConfigurationgetConfiguration()).isMakefileConfiguration()) {
            set.put(new BooleanNodeProp(getExcluded(), true"ExcludedFromBuild"getString("ExcludedFromCodeAssistanceTxt"), getString("ExcludedFromCodeAssistanceHint"))); // NOI18N
        } else {
            set.put(new BooleanNodeProp(getExcluded(), true"ExcludedFromBuild"getString("ExcludedFromBuildTxt"), getString("ExcludedFromBuildHint"))); // NOI18N
        }
        set.put(new ToolNodeProp());
        sheet.put(set);
        return sheet;
    }
    private class ToolNodeProp extends Node.Property<Integer> {
        public ToolNodeProp() {
            super(Integer.class);
        }
        @Override
        public String getName() {
            return getString("ToolTxt1");
        }
        public Integer getValue() {
            return Integer.valueOf(getTool());
        }
        public void setValue(Integer v) {
//            String newTool = (String) v;
//            setTool(newTool);
            setTool(v);
        }
        public boolean canWrite() {
            return true;
        }
        public boolean canRead() {
            return true;
        }
        @Override
        public PropertyEditor getPropertyEditor() {
            return new ToolEditor();
        }
    }
    private class ToolEditor extends PropertyEditorSupport {
        @Override
        public String getJavaInitializationString() {
            return getAsText();
        }
        @Override
        public String getAsText() {
            int val = ((IntegergetValue()).intValue();
            return Tool.getName(val);
//            CompilerSet set = CompilerSetManager.getDefault(((MakeConfiguration)configuration).getDevelopmentHost().getName()).getCompilerSet(((MakeConfiguration)configuration).getCompilerSet().getValue());
//            return set.getTool(val).getGenericName();
        }
        @Override
        public void setAsText(String textthrows java.lang.IllegalArgumentException {
//            setValue(text);
            setValue(Tool.getTool(text));
        }
        @Override
        public String[] getTags() {
            return getToolNames();
        }
    }
    private static class StringRONodeProp extends PropertySupport<String> {
        String value;
        public StringRONodeProp(String nameString value) {
            super(nameString.classnamenametruefalse);
            this. = value;
        }
        public String getValue() {
            return ;
        }
        public void setValue(String v) {
        }
    }
    @Override
    public String toString() {
        return getItem().getPath();
    }
    private static ResourceBundle bundle = null;
    private static String getString(String s) {
        if ( == null) {
             = NbBundle.getBundle(ItemConfiguration.class);
        }
        return .getString(s);
    }
New to GrepCode? Check out our FAQ X