Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/Java/Netbeans/nbbuild/antsrc/org/netbeans/nbbuild/   (Apache JAVA IDE Version 28©)  Datei vom 3.10.2025 mit Größe 4 kB image not shown  

Quelle  SetCluster.java   Sprache: JAVA

 
/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */


package org.netbeans.nbbuild;

import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Hashtable;
import java.util.Map;
import java.util.Set;
import java.util.StringTokenizer;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.Task;
import org.apache.tools.ant.taskdefs.Property;

/** Settigns the given property to cluster value
 *
 * @author Michal Zlamal
 */

public class SetCluster extends Task {
    private String name = null;
    private String clusterName = null;
    private String cluster;
    private String thisModuleName = null;
    private String defaultLocation = null;
    
    /** Sets the name of property which should contain the value */
    public void setName(String name) {
        this.name = name;
    }
    
    /** Sets the name of property which should contain name of cluster */
    public void setClusterName(String name) {
 this.clusterName = name;
    }
    
    /** Name of a cluster */
    public void setCluster (String cluster) {
        this.cluster = cluster;
    }
    
    /** Name of this module */
    public void setModule(String module) {
        thisModuleName = module;
    }

    /** Location of default cluster */
    public void setDefaultLocation(String defaultLocation) {
        this.defaultLocation = defaultLocation;
    }
    
    public @Override void execute() throws BuildException {
        if (name == null) {
            throw new BuildException("Name of property to set have to be specified",this.getLocation());
        }
        if (cluster != null) {
            String clusterDir = this.getProject().getProperty(cluster + ".dir");
            if (clusterDir == nullthrow new BuildException( "Property: " + cluster + ".dir have to be defined"this.getLocation());
            this.getProject().setProperty( name, clusterDir );
            return;
        }
        if (thisModuleName == null) {
            throw new BuildException("The name of current module have to be set", getLocation());
        }

        Property faketask = new Property();
        faketask.setProject(getProject());
        faketask.setLocation(this.getLocation());

        String[] clusterDir = { null };
        Map<String, Object> properties = getProject().getProperties();
        findClusterAndId(name, clusterDir, properties, thisModuleName, faketask, defaultLocation);
    }

    static String findClusterAndId(String propertyName, String[] clusterDir, Map<String, Object> properties, String path, Property faketask, final String fallback) throws BuildException {
        String id = null;
        clusterDir[0] = findClusterForAModule(propertyName, properties, path, clusterDir[0], faketask);
        if (clusterDir[0] == null && path.contains("/")) {
            final String shortPath = path.substring(path.lastIndexOf('/') + 1);
            clusterDir[0] = findClusterForAModule(propertyName, properties, shortPath, clusterDir[0], faketask);
            if (clusterDir[0] != null) {
                id = shortPath;
            }
        }
        if (clusterDir[0] == null) {
            if (fallback == null) {
                throw new BuildException("No default cluster location defined", faketask.getLocation());
            }

            clusterDir[0] = fallback;   // fallback
        }
        return id;
    }

    private static String findClusterForAModule(String propertyName, Map<String, Object> properties, String path, String clusterDir, Property faketask) throws BuildException {
        // not found, try indirect nbbuild/cluster.properties
        for (Map.Entry<String,Object> entry : properties.entrySet()) {
            String val = (String) entry.getValue();
            String[] modules = val.split(", *");
            if (Arrays.asList(modules).contains(path)) {
                String key = entry.getKey();
                clusterDir = (String) properties.get(key + ".dir");
                if (clusterDir != null) {
                    faketask.setName(propertyName);
                    faketask.setValue(clusterDir);
                    faketask.execute();
                    break;
                }
            }
        }
        return clusterDir;
    }

}

Messung V0.5
C=89 H=91 G=89

¤ Dauer der Verarbeitung: 0.5 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.