ada.project/src/org/netbeans/modules/ada/project/ui/properties/AdaProjectProperties.java
author Andrea Lucarelli <raster@netbeans.org>
Sun, 22 Aug 2010 23:37:11 +0200
branchrelease68
changeset 16367 d2820c029d3a
parent 15779 367c7fdb5d23
permissions -rw-r--r--
Add JVM compiler support.
raster@14182
     1
/*
raster@14182
     2
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
raster@14182
     3
 *
raster@14182
     4
 * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
raster@14182
     5
 *
raster@14182
     6
 * The contents of this file are subject to the terms of either the GNU
raster@14182
     7
 * General Public License Version 2 only ("GPL") or the Common
raster@14182
     8
 * Development and Distribution License("CDDL") (collectively, the
raster@14182
     9
 * "License"). You may not use this file except in compliance with the
raster@14182
    10
 * License. You can obtain a copy of the License at
raster@14182
    11
 * http://www.netbeans.org/cddl-gplv2.html
raster@14182
    12
 * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
raster@14182
    13
 * specific language governing permissions and limitations under the
raster@14182
    14
 * License.  When distributing the software, include this License Header
raster@14182
    15
 * Notice in each file and include the License file at
raster@14182
    16
 * nbbuild/licenses/CDDL-GPL-2-CP.  Sun designates this
raster@14182
    17
 * particular file as subject to the "Classpath" exception as provided
raster@14182
    18
 * by Sun in the GPL Version 2 section of the License file that
raster@14182
    19
 * accompanied this code. If applicable, add the following below the
raster@14182
    20
 * License Header, with the fields enclosed by brackets [] replaced by
raster@14182
    21
 * your own identifying information:
raster@14182
    22
 * "Portions Copyrighted [year] [name of copyright owner]"
raster@14182
    23
 *
raster@14182
    24
 * If you wish your version of this file to be governed by only the CDDL
raster@14182
    25
 * or only the GPL Version 2, indicate your decision by adding
raster@14182
    26
 * "[Contributor] elects to include this software in this distribution
raster@14182
    27
 * under the [CDDL or GPL Version 2] license." If you do not indicate a
raster@14182
    28
 * single choice of license, a recipient has the option to distribute
raster@14182
    29
 * your version of this file under either the CDDL, the GPL Version 2 or
raster@14182
    30
 * to extend the choice of license to its licensees as provided above.
raster@14182
    31
 * However, if you add GPL Version 2 code and therefore, elected the GPL
raster@14182
    32
 * Version 2 license, then the option applies only if the new code is
raster@14182
    33
 * made subject to such option by the copyright holder.
raster@14182
    34
 *
raster@14182
    35
 * Contributor(s):
raster@14182
    36
 *
raster@14182
    37
 * Portions Copyrighted 2008 Sun Microsystems, Inc.
raster@14182
    38
 */
raster@14182
    39
package org.netbeans.modules.ada.project.ui.properties;
raster@14182
    40
raster@14182
    41
import java.io.File;
raster@14182
    42
import java.io.IOException;
raster@14182
    43
import java.net.URI;
raster@14182
    44
import java.net.URL;
raster@14182
    45
import java.nio.charset.Charset;
raster@14182
    46
import java.nio.charset.UnsupportedCharsetException;
raster@14182
    47
import java.util.ArrayList;
raster@14182
    48
import java.util.LinkedList;
raster@14182
    49
import java.util.List;
raster@14182
    50
import java.util.StringTokenizer;
raster@14182
    51
import org.netbeans.api.project.ProjectManager;
raster@14182
    52
import org.netbeans.api.queries.FileEncodingQuery;
raster@14182
    53
import org.netbeans.modules.ada.project.AdaProject;
raster@14182
    54
import org.netbeans.modules.ada.project.AdaProjectUtil;
raster@14182
    55
import org.netbeans.modules.ada.project.Pair;
raster@14182
    56
import org.netbeans.modules.ada.project.SourceRoots;
raster@15779
    57
import org.netbeans.modules.ada.project.options.AdaOptions;
raster@14182
    58
import org.netbeans.spi.project.support.ant.AntProjectHelper;
raster@14182
    59
import org.netbeans.spi.project.support.ant.EditableProperties;
raster@14182
    60
import org.netbeans.spi.project.support.ant.PropertyEvaluator;
raster@14182
    61
import org.openide.filesystems.FileObject;
raster@14182
    62
import org.openide.util.Exceptions;
raster@14182
    63
import org.openide.util.Mutex;
raster@14182
    64
import org.openide.util.MutexException;
raster@14182
    65
raster@14182
    66
/**
raster@14182
    67
 *
raster@14182
    68
 * @author Andrea Lucarelli
raster@14182
    69
 */
raster@14182
    70
public class AdaProjectProperties {
raster@15779
    71
raster@14182
    72
    public static final String SRC_DIR = "src.dir"; //NOI18N
raster@14461
    73
    public static final String BUILD_DIR = "build.dir"; // NOI18N
raster@14461
    74
    public static final String DIST_DIR = "dist.dir"; // NOI18N
raster@14182
    75
    public static final String MAIN_FILE = "main.file"; //NOI18N
raster@14182
    76
    public static final String APPLICATION_ARGS = "application.args";   //NOI18N
raster@14182
    77
    public static final String ACTIVE_PLATFORM = "platform.active"; //NOI18N
raster@14182
    78
    public static final String ADA_LIB_PATH = "ada.lib.path"; //NOI18N
raster@14182
    79
    public static final String SOURCE_ENCODING = "source.encoding"; //NOI18N
raster@16367
    80
    public static final String OUTPUT_BUILD_FORMAT = "output.build.format"; //NOI18N
raster@16367
    81
raster@16367
    82
    public static final String NATIVE_FORMAT = "NATIVE_FORMAT"; //NOI18N
raster@16367
    83
    public static final String JVM_FORMAT = "JVM_FORMAT"; //NOI18N
raster@15779
    84
raster@14182
    85
    private final AdaProject project;
raster@14182
    86
    private final PropertyEvaluator eval;
raster@14461
    87
raster@14182
    88
    private volatile String encoding;
raster@15779
    89
    private volatile List<Pair<File, String>> sourceRoots;
raster@15779
    90
    private volatile List<Pair<File, String>> testRoots;
raster@14182
    91
    private volatile String mainModule;
raster@14182
    92
    private volatile String appArgs;
raster@15779
    93
    private volatile ArrayList<String> librariesPath;
raster@15779
    94
raster@14182
    95
    private volatile String activePlatformId;
raster@16367
    96
    private volatile String outputBuildFormat;
raster@15779
    97
    private volatile String adaDialects;
raster@15779
    98
    private volatile String adaRestrictions;
raster@15779
    99
    private volatile String pkgSpecPrefix;
raster@15779
   100
    private volatile String pkgBodyPrefix;
raster@15779
   101
    private volatile String separatePrefix;
raster@15779
   102
    private volatile String pkgSpecPostfix;
raster@15779
   103
    private volatile String pkgBodyPostfix;
raster@15779
   104
    private volatile String separatePostfix;
raster@15779
   105
    private volatile String pkgSpecExt;
raster@15779
   106
    private volatile String pkgBodyExt;
raster@15779
   107
    private volatile String separateExt;
raster@15779
   108
raster@14461
   109
    private static final String ADA_PATH_SEP = "|";
raster@14182
   110
raster@15779
   111
    public AdaProjectProperties(final AdaProject project) {
raster@14182
   112
        assert project != null;
raster@14182
   113
        this.project = project;
raster@14182
   114
        this.eval = project.getEvaluator();
raster@14182
   115
    }
raster@15779
   116
raster@15779
   117
    public AdaProject getProject() {
raster@14182
   118
        return this.project;
raster@14182
   119
    }
raster@15779
   120
raster@15779
   121
    public FileObject getProjectDirectory() {
raster@14182
   122
        return this.project.getProjectDirectory();
raster@14182
   123
    }
raster@15779
   124
raster@15779
   125
    public void setEncoding(final String encoding) {
raster@14182
   126
        this.encoding = encoding;
raster@14182
   127
    }
raster@15779
   128
raster@15779
   129
    public String getEncoding() {
raster@14182
   130
        if (this.encoding == null) {
raster@14182
   131
            this.encoding = eval.getProperty(SOURCE_ENCODING);
raster@14182
   132
        }
raster@14182
   133
        return this.encoding;
raster@14182
   134
    }
raster@15779
   135
raster@15779
   136
    public List<Pair<File, String>> getSourceRoots() {
raster@14182
   137
        if (sourceRoots == null) {
raster@14182
   138
            final SourceRoots tmpSourceRoots = project.getSourceRoots();
raster@14182
   139
            final String[] rootLabels = tmpSourceRoots.getRootNames();
raster@14182
   140
            final String[] rootProps = tmpSourceRoots.getRootProperties();
raster@14182
   141
            final URL[] rootURLs = tmpSourceRoots.getRootURLs();
raster@15779
   142
            final List<Pair<File, String>> data = new LinkedList<Pair<File, String>>();
raster@15779
   143
            for (int i = 0; i < rootURLs.length; i++) {
raster@15779
   144
                final File f = new File(URI.create(rootURLs[i].toExternalForm()));
raster@14182
   145
                final String s = tmpSourceRoots.getRootDisplayName(rootLabels[i], rootProps[i]);
raster@14182
   146
                data.add(Pair.of(f, s));
raster@14182
   147
            }
raster@14182
   148
            this.sourceRoots = data;
raster@14182
   149
        }
raster@14182
   150
        return this.sourceRoots;
raster@14182
   151
    }
raster@15779
   152
raster@15779
   153
    public void setSourceRoots(final List<Pair<File, String>> sourceRoots) {
raster@14182
   154
        assert sourceRoots != null;
raster@14182
   155
        this.sourceRoots = sourceRoots;
raster@14182
   156
    }
raster@15779
   157
raster@15779
   158
    public List<Pair<File, String>> getTestRoots() {
raster@14182
   159
        if (testRoots == null) {
raster@14461
   160
            final SourceRoots tmpTestRoots = project.getTestRoots();
raster@14461
   161
            final String[] rootLabels = tmpTestRoots.getRootNames();
raster@14461
   162
            final String[] rootProps = tmpTestRoots.getRootProperties();
raster@14461
   163
            final URL[] rootURLs = tmpTestRoots.getRootURLs();
raster@15779
   164
            final List<Pair<File, String>> data = new LinkedList<Pair<File, String>>();
raster@15779
   165
            for (int i = 0; i < rootURLs.length; i++) {
raster@15779
   166
                final File f = new File(URI.create(rootURLs[i].toExternalForm()));
raster@14461
   167
                final String s = tmpTestRoots.getRootDisplayName(rootLabels[i], rootProps[i]);
raster@14182
   168
                data.add(Pair.of(f, s));
raster@14182
   169
            }
raster@14182
   170
            this.testRoots = data;
raster@14182
   171
        }
raster@14182
   172
        return this.testRoots;
raster@14182
   173
    }
raster@15779
   174
raster@15779
   175
    public void setTestRoots(final List<Pair<File, String>> testRoots) {
raster@14182
   176
        assert testRoots != null;
raster@14182
   177
        this.sourceRoots = testRoots;
raster@14182
   178
    }
raster@15779
   179
raster@15779
   180
    public String getMainModule() {
raster@14182
   181
        if (mainModule == null) {
raster@14182
   182
            mainModule = eval.getProperty(MAIN_FILE);
raster@14182
   183
        }
raster@14182
   184
        return mainModule;
raster@14182
   185
    }
raster@15779
   186
raster@15779
   187
    public void setMainModule(final String module) {
raster@14182
   188
        this.mainModule = module;
raster@14182
   189
    }
raster@15779
   190
raster@15779
   191
    public String getApplicationArgs() {
raster@14182
   192
        if (appArgs == null) {
raster@14182
   193
            appArgs = eval.getProperty(APPLICATION_ARGS);
raster@14182
   194
        }
raster@14182
   195
        return appArgs;
raster@14182
   196
    }
raster@15779
   197
raster@15779
   198
    public void setApplicationArgs(final String args) {
raster@14182
   199
        this.appArgs = args;
raster@14182
   200
    }
raster@14182
   201
raster@14182
   202
    public ArrayList<String> getLibrariesPath() {
raster@15779
   203
        if (librariesPath == null) {
raster@14182
   204
            librariesPath = buildPathList(eval.getProperty(ADA_LIB_PATH));
raster@15779
   205
        }
raster@14182
   206
        return librariesPath;
raster@14182
   207
    }
raster@14182
   208
raster@14182
   209
    public void setLibrariesPath(ArrayList<String> librariesPath) {
raster@14182
   210
        assert librariesPath != null;
raster@14182
   211
        this.librariesPath = librariesPath;
raster@14182
   212
    }
raster@14182
   213
raster@14182
   214
    public String getActivePlatformId() {
raster@15779
   215
        if (activePlatformId == null) {
raster@14182
   216
            activePlatformId = eval.getProperty(ACTIVE_PLATFORM);
raster@15779
   217
        }
raster@14182
   218
        return activePlatformId;
raster@14182
   219
    }
raster@14182
   220
raster@14182
   221
    public void setActivePlatformId(String activePlatformId) {
raster@14182
   222
        this.activePlatformId = activePlatformId;
raster@14182
   223
    }
raster@15779
   224
raster@16367
   225
    public String getOutputBuildFormat() {
raster@16367
   226
        if (outputBuildFormat == null) {
raster@16367
   227
            outputBuildFormat = eval.getProperty(OUTPUT_BUILD_FORMAT);
raster@16367
   228
        }
raster@16367
   229
        return outputBuildFormat;
raster@16367
   230
    }
raster@16367
   231
raster@16367
   232
    public void setOutputBuildFormat(String outputBuildFormat) {
raster@16367
   233
        this.outputBuildFormat = outputBuildFormat;
raster@16367
   234
    }
raster@16367
   235
raster@14182
   236
    // Storing
raster@15779
   237
    void save() {
raster@14182
   238
        try {
raster@14182
   239
            if (this.sourceRoots != null) {
raster@14182
   240
                final SourceRoots sr = this.project.getSourceRoots();
raster@14182
   241
                sr.putRoots(this.sourceRoots);
raster@14182
   242
            }
raster@14182
   243
            if (this.testRoots != null) {
raster@14182
   244
                final SourceRoots sr = this.project.getTestRoots();
raster@14182
   245
                sr.putRoots(this.testRoots);
raster@14182
   246
            }
raster@14182
   247
            // store properties
raster@14182
   248
            ProjectManager.mutex().writeAccess(new Mutex.ExceptionAction<Void>() {
raster@15779
   249
raster@14182
   250
                public Void run() throws IOException {
raster@14182
   251
                    saveProperties();
raster@14182
   252
                    return null;
raster@14182
   253
                }
raster@14182
   254
            });
raster@14182
   255
            ProjectManager.getDefault().saveProject(project);
raster@14182
   256
        } catch (MutexException e) {
raster@14182
   257
            Exceptions.printStackTrace((IOException) e.getException());
raster@14182
   258
        } catch (IOException ex) {
raster@14182
   259
            Exceptions.printStackTrace(ex);
raster@14182
   260
        }
raster@14182
   261
    }
raster@15779
   262
raster@15779
   263
    private void saveProperties() throws IOException {
raster@15779
   264
raster@14182
   265
        final AntProjectHelper helper = AdaProjectUtil.getProjectHelper(project);
raster@14182
   266
        // get properties
raster@14182
   267
        final EditableProperties projectProperties = helper.getProperties(AntProjectHelper.PROJECT_PROPERTIES_PATH);
raster@15779
   268
        final EditableProperties privateProperties = helper.getProperties(AntProjectHelper.PRIVATE_PROPERTIES_PATH);
raster@15779
   269
raster@14182
   270
        if (mainModule != null) {
raster@14182
   271
            projectProperties.put(MAIN_FILE, mainModule);
raster@14182
   272
        }
raster@15779
   273
raster@14182
   274
        if (encoding != null) {
raster@14182
   275
            projectProperties.put(SOURCE_ENCODING, encoding);
raster@14182
   276
        }
raster@15779
   277
raster@14182
   278
        if (appArgs != null) {
raster@14182
   279
            privateProperties.put(APPLICATION_ARGS, appArgs);
raster@14182
   280
        }
raster@15779
   281
raster@15779
   282
        if (librariesPath != null) {
raster@14182
   283
            projectProperties.put(ADA_LIB_PATH, buildPathString(librariesPath));
raster@14182
   284
        }
raster@15779
   285
raster@15779
   286
        if (activePlatformId != null) {
raster@14182
   287
            projectProperties.put(ACTIVE_PLATFORM, activePlatformId);
raster@15779
   288
        }
raster@15779
   289
raster@16367
   290
        if (outputBuildFormat != null) {
raster@16367
   291
            projectProperties.put(OUTPUT_BUILD_FORMAT, outputBuildFormat);
raster@16367
   292
        }
raster@16367
   293
raster@15779
   294
        if (adaDialects != null) {
raster@15779
   295
            projectProperties.put(AdaOptions.ADA_DIALECTS, adaDialects);
raster@15779
   296
        }
raster@15779
   297
        if (adaRestrictions != null) {
raster@15779
   298
            projectProperties.put(AdaOptions.ADA_RESTRICTIONS, adaRestrictions);
raster@15779
   299
        }
raster@15779
   300
        if (pkgSpecPrefix != null) {
raster@15779
   301
            projectProperties.put(AdaOptions.PKG_SPEC_PREFIX, pkgSpecPrefix);
raster@15779
   302
        }
raster@15779
   303
        if (pkgBodyPrefix != null) {
raster@15779
   304
            projectProperties.put(AdaOptions.PKG_BODY_PREFIX, pkgBodyPrefix);
raster@15779
   305
        }
raster@15779
   306
        if (separatePrefix != null) {
raster@15779
   307
            projectProperties.put(AdaOptions.SEPARATE_PREFIX, separatePrefix);
raster@15779
   308
        }
raster@15779
   309
        if (pkgSpecPostfix != null) {
raster@15779
   310
            projectProperties.put(AdaOptions.PKG_SPEC_POSTFIX, pkgSpecPostfix);
raster@15779
   311
        }
raster@15779
   312
        if (pkgBodyPostfix != null) {
raster@15779
   313
            projectProperties.put(AdaOptions.PKG_BODY_POSTFIX, pkgBodyPostfix);
raster@15779
   314
        }
raster@15779
   315
        if (separatePostfix != null) {
raster@15779
   316
            projectProperties.put(AdaOptions.SEPARATE_POSTFIX, separatePostfix);
raster@15779
   317
        }
raster@15779
   318
        if (pkgSpecExt != null) {
raster@15779
   319
            projectProperties.put(AdaOptions.PKG_SPEC_EXT, pkgSpecExt);
raster@15779
   320
        }
raster@15779
   321
        if (pkgBodyExt != null) {
raster@15779
   322
            projectProperties.put(AdaOptions.PKG_BODY_EXT, pkgBodyExt);
raster@15779
   323
        }
raster@15779
   324
        if (separateExt != null) {
raster@15779
   325
            projectProperties.put(AdaOptions.SEPARATE_EXT, separateExt);
raster@15779
   326
        }
raster@15779
   327
raster@14182
   328
        // store all the properties        
raster@14182
   329
        helper.putProperties(AntProjectHelper.PROJECT_PROPERTIES_PATH, projectProperties);
raster@14182
   330
        helper.putProperties(AntProjectHelper.PRIVATE_PROPERTIES_PATH, privateProperties);
raster@14182
   331
raster@14182
   332
        // additional changes
raster@14182
   333
        // encoding
raster@14182
   334
        if (encoding != null) {
raster@14182
   335
            try {
raster@14182
   336
                FileEncodingQuery.setDefaultEncoding(Charset.forName(encoding));
raster@14182
   337
            } catch (UnsupportedCharsetException e) {
raster@14182
   338
                //When the encoding is not supported by JVM do not set it as default
raster@14182
   339
            }
raster@14182
   340
        }
raster@14182
   341
    }
raster@15779
   342
raster@14182
   343
    /**
raster@14182
   344
     *Build a path string from arraylist
raster@14182
   345
     * @param path
raster@14182
   346
     * @return
raster@14182
   347
     */
raster@15779
   348
    private static String buildPathString(ArrayList<String> path) {
raster@14182
   349
        StringBuilder pathString = new StringBuilder();
raster@14182
   350
        int count = 0;
raster@15779
   351
        for (String pathEle : path) {
raster@14182
   352
            pathString.append(pathEle);
raster@15779
   353
            if (count++ < path.size()) {
raster@14182
   354
                pathString.append(ADA_PATH_SEP);
raster@14182
   355
            }
raster@14182
   356
        }
raster@14182
   357
        return pathString.toString();
raster@14182
   358
    }
raster@15779
   359
raster@14182
   360
    /**
raster@14182
   361
     *
raster@14182
   362
     * @param pathString
raster@14182
   363
     * @return
raster@14182
   364
     */
raster@15779
   365
    private static ArrayList<String> buildPathList(String pathString) {
raster@14182
   366
        ArrayList<String> pathList = new ArrayList<String>();
raster@14182
   367
        StringTokenizer tokenizer = new StringTokenizer(pathString, ADA_PATH_SEP);
raster@15779
   368
        while (tokenizer.hasMoreTokens()) {
raster@14182
   369
            pathList.add(tokenizer.nextToken());
raster@14182
   370
        }
raster@14182
   371
        return pathList;
raster@14182
   372
    }
raster@14182
   373
raster@15779
   374
    public String getAdaDialects() {
raster@15779
   375
        if (adaDialects == null) {
raster@15779
   376
            adaDialects = eval.getProperty(AdaOptions.ADA_DIALECTS);
raster@15779
   377
        }
raster@15779
   378
        return adaDialects;
raster@15779
   379
    }
raster@15779
   380
raster@15779
   381
    public void setAdaDialects(String adaDialects) {
raster@15779
   382
        this.adaDialects = adaDialects;
raster@15779
   383
    }
raster@15779
   384
raster@15779
   385
    public String getAdaRestrictions() {
raster@15779
   386
        if (adaRestrictions == null) {
raster@15779
   387
            adaRestrictions = eval.getProperty(AdaOptions.ADA_RESTRICTIONS);
raster@15779
   388
        }
raster@15779
   389
        return adaRestrictions;
raster@15779
   390
    }
raster@15779
   391
raster@15779
   392
    public void setAdaRestrictions(String adaRestrictions) {
raster@15779
   393
        this.adaRestrictions = adaRestrictions;
raster@15779
   394
    }
raster@15779
   395
raster@15779
   396
    public String getPkgBodyExt() {
raster@15779
   397
        if (pkgBodyExt == null) {
raster@15779
   398
            pkgBodyExt = eval.getProperty(AdaOptions.PKG_BODY_EXT);
raster@15779
   399
        }
raster@15779
   400
        return pkgBodyExt;
raster@15779
   401
    }
raster@15779
   402
raster@15779
   403
    public void setPkgBodyExt(String pkgBodyExt) {
raster@15779
   404
        this.pkgBodyExt = pkgBodyExt;
raster@15779
   405
    }
raster@15779
   406
raster@15779
   407
    public String getPkgBodyPostfix() {
raster@15779
   408
        if (pkgBodyPostfix == null) {
raster@15779
   409
            pkgBodyPostfix = eval.getProperty(AdaOptions.PKG_BODY_POSTFIX);
raster@15779
   410
        }
raster@15779
   411
        return pkgBodyPostfix;
raster@15779
   412
    }
raster@15779
   413
raster@15779
   414
    public void setPkgBodyPostfix(String pkgBodyPostfix) {
raster@15779
   415
        this.pkgBodyPostfix = pkgBodyPostfix;
raster@15779
   416
    }
raster@15779
   417
raster@15779
   418
    public String getPkgBodyPrefix() {
raster@15779
   419
        if (pkgBodyPrefix == null) {
raster@15779
   420
            pkgBodyPrefix = eval.getProperty(AdaOptions.PKG_BODY_PREFIX);
raster@15779
   421
        }
raster@15779
   422
        return pkgBodyPrefix;
raster@15779
   423
    }
raster@15779
   424
raster@15779
   425
    public void setPkgBodyPrefix(String pkgBodyPrefix) {
raster@15779
   426
        this.pkgBodyPrefix = pkgBodyPrefix;
raster@15779
   427
    }
raster@15779
   428
raster@15779
   429
    public String getPkgSpecExt() {
raster@15779
   430
        if (pkgSpecExt == null) {
raster@15779
   431
            pkgSpecExt = eval.getProperty(AdaOptions.PKG_SPEC_EXT);
raster@15779
   432
        }
raster@15779
   433
        return pkgSpecExt;
raster@15779
   434
    }
raster@15779
   435
raster@15779
   436
    public void setPkgSpecExt(String pkgSpecExt) {
raster@15779
   437
        this.pkgSpecExt = pkgSpecExt;
raster@15779
   438
    }
raster@15779
   439
raster@15779
   440
    public String getPkgSpecPostfix() {
raster@15779
   441
        if (pkgSpecPostfix == null) {
raster@15779
   442
            pkgSpecPostfix = eval.getProperty(AdaOptions.PKG_SPEC_POSTFIX);
raster@15779
   443
        }
raster@15779
   444
        return pkgSpecPostfix;
raster@15779
   445
    }
raster@15779
   446
raster@15779
   447
    public void setPkgSpecPostfix(String pkgSpecPostfix) {
raster@15779
   448
        this.pkgSpecPostfix = pkgSpecPostfix;
raster@15779
   449
    }
raster@15779
   450
raster@15779
   451
    public String getPkgSpecPrefix() {
raster@15779
   452
        if (pkgSpecPrefix == null) {
raster@15779
   453
            pkgSpecPrefix = eval.getProperty(AdaOptions.PKG_SPEC_PREFIX);
raster@15779
   454
        }
raster@15779
   455
        return pkgSpecPrefix;
raster@15779
   456
    }
raster@15779
   457
raster@15779
   458
    public void setPkgSpecPrefix(String pkgSpecPrefix) {
raster@15779
   459
        this.pkgSpecPrefix = pkgSpecPrefix;
raster@15779
   460
    }
raster@15779
   461
raster@15779
   462
    public String getSeparateExt() {
raster@15779
   463
        if (separateExt == null) {
raster@15779
   464
            separateExt = eval.getProperty(AdaOptions.SEPARATE_EXT);
raster@15779
   465
        }
raster@15779
   466
        return separateExt;
raster@15779
   467
    }
raster@15779
   468
raster@15779
   469
    public void setSeparateExt(String separateExt) {
raster@15779
   470
        this.separateExt = separateExt;
raster@15779
   471
    }
raster@15779
   472
raster@15779
   473
    public String getSeparatePostfix() {
raster@15779
   474
        if (separatePostfix == null) {
raster@15779
   475
            separatePostfix = eval.getProperty(AdaOptions.SEPARATE_POSTFIX);
raster@15779
   476
        }
raster@15779
   477
        return separatePostfix;
raster@15779
   478
    }
raster@15779
   479
raster@15779
   480
    public void setSeparatePostfix(String separatePostfix) {
raster@15779
   481
        this.separatePostfix = separatePostfix;
raster@15779
   482
    }
raster@15779
   483
raster@15779
   484
    public String getSeparatePrefix() {
raster@15779
   485
        if (separatePrefix == null) {
raster@15779
   486
            separatePrefix = eval.getProperty(AdaOptions.SEPARATE_PREFIX);
raster@15779
   487
        }
raster@15779
   488
        return separatePrefix;
raster@15779
   489
    }
raster@15779
   490
raster@15779
   491
    public void setSeparatePrefix(String separatePrefix) {
raster@15779
   492
        this.separatePrefix = separatePrefix;
raster@15779
   493
    }
raster@14182
   494
}