| /** |
| * 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.apache.jena.example; |
| |
| |
| // Imports |
| /////////////// |
| import org.apache.commons.cli.*; |
| import org.slf4j.Logger; |
| import org.slf4j.LoggerFactory; |
| |
| /** |
| * <p>Base file for <em>Getting Started</em> examples. A place to put shared |
| * implementation, constants, etc.</p> |
| */ |
| public abstract class Base |
| implements Runnable |
| { |
| /***********************************/ |
| /* Constants */ |
| /***********************************/ |
| |
| /** Relative path to the directory containing sample data */ |
| public static final String DATA_DIR = "./src/main/resources/data/"; |
| |
| /** Relative path to the directory containing sample ontologies */ |
| public static final String ONTOLOGIES_DIR = "./src/main/resources/ontologies/"; |
| |
| |
| /***********************************/ |
| /* Static variables */ |
| /***********************************/ |
| |
| @SuppressWarnings( value = "unused" ) |
| private static final Logger log = LoggerFactory.getLogger( Base.class ); |
| |
| /** Command line options */ |
| private static Options options; |
| |
| /***********************************/ |
| /* Instance variables */ |
| /***********************************/ |
| |
| private CommandLine commandLine; |
| |
| /***********************************/ |
| /* Constructors */ |
| /***********************************/ |
| |
| /***********************************/ |
| /* External signature methods */ |
| /***********************************/ |
| |
| /** |
| * Add a command line option for the application, which will be matched |
| * against the command-line args at run time. |
| * @param opt Short option or null, e.g. <code>-a</code> |
| * @param longOpt Long option name or null, e.g. <code>--data</code> |
| * @param hasArg If true, the option will take an argument, e.g. <code>--dataFile foo.txt</code> |
| * @param description Argument description as it will appear in the usage message |
| */ |
| public static void addOption( String opt, String longOpt, boolean hasArg, String description ) { |
| if (Base.options == null) { |
| Base.options = new Options(); |
| } |
| options.addOption( opt, longOpt, hasArg, description ); |
| } |
| |
| /** |
| * Return the list of options, ensuring that it is non-null |
| * @return |
| */ |
| public static Options getOptions() { |
| if (Base.options == null) { |
| Base.options = new Options(); |
| } |
| return options; |
| } |
| |
| /** |
| * Set up the command line arguments according to the options. If the |
| * arguments do not parse, print an error message and exit with status 1. |
| * @param args |
| */ |
| public Base setArgs( String[] args ) { |
| if (args == null) {args = new String[] {};} |
| |
| try { |
| commandLine = new GnuParser().parse( Base.getOptions(), args ); |
| } |
| catch (ParseException e) { |
| HelpFormatter formatter = new HelpFormatter(); |
| formatter.printHelp( "", options ); |
| System.exit( 1 ); |
| } |
| |
| // allow method chaining |
| return this; |
| } |
| |
| /** |
| * Return true if the given option is set in the given command line |
| * @param opt Option to test for, e.g. <code>data</code> |
| * @return |
| */ |
| public boolean hasArg( String opt ) { |
| if (commandLine == null) { |
| System.err.println( "Command line arguments have not been set yet. See setArgs( String[] args )" ); |
| System.exit( 1 ); |
| } |
| return commandLine.hasOption( opt ); |
| } |
| |
| |
| /***********************************/ |
| /* Internal implementation methods */ |
| /***********************************/ |
| |
| /***********************************/ |
| /* Inner class definitions */ |
| /***********************************/ |
| |
| } |
| |