001    /*
002     * CDDL HEADER START
003     *
004     * The contents of this file are subject to the terms of the
005     * Common Development and Distribution License, Version 1.0 only
006     * (the "License").  You may not use this file except in compliance
007     * with the License.
008     *
009     * You can obtain a copy of the license at
010     * trunk/opends/resource/legal-notices/OpenDS.LICENSE
011     * or https://OpenDS.dev.java.net/OpenDS.LICENSE.
012     * See the License for the specific language governing permissions
013     * and limitations under the License.
014     *
015     * When distributing Covered Code, include this CDDL HEADER in each
016     * file and include the License file at
017     * trunk/opends/resource/legal-notices/OpenDS.LICENSE.  If applicable,
018     * add the following below this CDDL HEADER, with the fields enclosed
019     * by brackets "[]" replaced with your own identifying information:
020     *      Portions Copyright [yyyy] [name of copyright owner]
021     *
022     * CDDL HEADER END
023     *
024     *
025     *      Copyright 2006-2008 Sun Microsystems, Inc.
026     */
027    package org.opends.server.tools;
028    
029    import java.util.ArrayList;
030    import org.opends.server.protocols.ldap.LDAPControl;
031    
032    
033    
034    
035    /**
036     * This class defines common options for all the operations used
037     * by the tools.
038     */
039    public class LDAPToolOptions
040    {
041    
042      private boolean showOperations =  false;
043      private boolean verbose = false;
044      private boolean continueOnError = false;
045      private String encoding = System.getProperty("file.encoding");
046      private ArrayList<LDAPControl> controls = new ArrayList<LDAPControl>();
047    
048      /**
049       * Creates a the tool options instance.
050       *
051       */
052      public LDAPToolOptions()
053      {
054      }
055    
056      /**
057       * Set whether to show what would be run but not actually do it.
058       *
059       * @param showOperations    True if we need to show what needs to be done.
060       *
061       */
062    
063      public void setShowOperations(boolean showOperations)
064      {
065        this.showOperations = showOperations;
066      }
067    
068      /**
069       * Return the showOperations flag value.
070       *
071       * @return  <CODE>true</CODE> if the operations should only be displayed, or
072       *          <CODE>false</CODE> if they should actually be performed.
073       */
074      public boolean showOperations()
075      {
076        return showOperations;
077      }
078    
079      /**
080       * Set verbose flag.
081       *
082       * @param  verbose  Indicates whether the tool should operate in verbose mode.
083       */
084    
085      public void setVerbose(boolean verbose)
086      {
087        this.verbose = verbose;
088      }
089    
090      /**
091       * Return the verbose flag value.
092       *
093       * @return  <CODE>true</CODE> if the tool should operate in verbose mode, or
094       *          <CODE>false</CODE> if not.
095       */
096      public boolean getVerbose()
097      {
098        return verbose;
099      }
100    
101      /**
102       * Set whether to use continue on error or not.
103       *
104       * @param continueOnError    True if processing should continue on
105       *                           error, false otherwise.
106       *
107       */
108    
109      public void setContinueOnError(boolean continueOnError)
110      {
111        this.continueOnError = continueOnError;
112      }
113    
114      /**
115       * Return the continueOnError flag value.
116       *
117       * @return  <CODE>true</CODE> if the tool should continue processing
118       *          operations if an error occurs with a previous operation, or
119       *          <CODE>false</CODE> if not.
120       */
121      public boolean continueOnError()
122      {
123        return continueOnError;
124      }
125    
126      /**
127       * Return the controls to apply to the operation.
128       *
129       * @return  The controls to apply to the operation.
130       */
131      public ArrayList<LDAPControl> getControls()
132      {
133        return controls;
134      }
135    
136      /**
137       * Specifies the set of controls to apply to the operation.
138       *
139       * @param  controls  The set of controls to apply to the operation.
140       */
141      public void setControls(ArrayList<LDAPControl> controls)
142      {
143        this.controls = controls;
144      }
145    
146      /**
147       * Set the encoding.
148       *
149       * @param  encodingStr  The encoding to use for string values.
150       */
151      public void setEncoding(String encodingStr)
152      {
153        this.encoding = encodingStr;
154      }
155    
156      /**
157       * Return the encoding value.
158       *
159       * @return  The encoding to use for string values.
160       */
161      public String getEncoding()
162      {
163        return encoding;
164      }
165    
166    }
167