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.makeldif;
028    
029    
030    
031    /**
032     * This class defines a data structure that provides information about the
033     * result of tag processing.
034     */
035    public class TagResult
036    {
037      /**
038       * A tag result in which all components have a value of <CODE>true</CODE>.
039       */
040      public static final TagResult SUCCESS_RESULT =
041           new TagResult(true, true, true, true);
042    
043    
044    
045      /**
046       * A tag result that indicates the value should not be included in the entry,
047       * but all other processing should continue.
048       */
049      public static final TagResult OMIT_FROM_ENTRY =
050           new TagResult(false, true, true, true);
051    
052    
053    
054      /**
055       * A tag result in whihc all components have a value of <CODE>false</CODE>.
056       */
057      public static final TagResult STOP_PROCESSING =
058           new TagResult(false, false, false, false);
059    
060    
061    
062      // Indicates whether to keep processing the associated line.
063      private boolean keepProcessingLine;
064    
065      // Indicates whether to keep processing the associated entry.
066      private boolean keepProcessingEntry;
067    
068      // Indicates whether to keep processing entries below the associated parent.
069      private boolean keepProcessingParent;
070    
071      // Indicates whether to keep processing entries for the template file.
072      private boolean keepProcessingTemplateFile;
073    
074    
075    
076      /**
077       * Creates a new tag result object with the provided information.
078       *
079       * @param  keepProcessingLine          Indicates whether to continue
080       *                                     processing for the current line.  If
081       *                                     not, then the line will not be included
082       *                                     in the entry.
083       * @param  keepProcessingEntry         Indicates whether to continue
084       *                                     processing for the current entry.  If
085       *                                     not, then the entry will not be
086       *                                     included in the data.
087       * @param  keepProcessingParent        Indicates whether to continue
088       *                                     processing entries below the current
089       *                                     parent in the template file.
090       * @param  keepProcessingTemplateFile  Indicates whether to continue
091       *                                     processing entries for the template
092       *                                     file.
093       */
094      public TagResult(boolean keepProcessingLine, boolean keepProcessingEntry,
095                       boolean keepProcessingParent,
096                       boolean keepProcessingTemplateFile)
097      {
098        this.keepProcessingLine         = keepProcessingLine;
099        this.keepProcessingEntry        = keepProcessingEntry;
100        this.keepProcessingParent       = keepProcessingParent;
101        this.keepProcessingTemplateFile = keepProcessingTemplateFile;
102      }
103    
104    
105    
106      /**
107       * Indicates whether to continue processing for the current line.  If this is
108       * <CODE>false</CODE>, then the current line will not be included in the
109       * entry.  It will have no impact on whehter the entry itself is included in
110       * the generated LDIF.
111       *
112       * @return  <CODE>true</CODE> if the line should be included in the entry, or
113       *          <CODE>false</CODE> if not.
114       */
115      public boolean keepProcessingLine()
116      {
117        return keepProcessingLine;
118      }
119    
120    
121    
122      /**
123       * Indicates whether to continue processing for the current entry.  If this is
124       * <CODE>false</CODE>, then the current entry will not be included in the
125       * generated LDIF, and processing will resume with the next entry below the
126       * current parent.
127       *
128       * @return  <CODE>true</CODE> if the entry should be included in the
129       *          generated LDIF, or <CODE>false</CODE> if not.
130       */
131      public boolean keepProcessingEntry()
132      {
133        return keepProcessingEntry;
134      }
135    
136    
137    
138      /**
139       * Indicates whether to continue processing entries below the current parent.
140       * If this is <CODE>false</CODE>, then the current entry will not be included,
141       * and processing will resume below the next parent in the template file.
142       *
143       * @return  <CODE>true</CODE> if processing for the current parent should
144       *          continue, or <CODE>false</CODE> if not.
145       */
146      public boolean keepProcessingParent()
147      {
148        return keepProcessingParent;
149      }
150    
151    
152    
153      /**
154       * Indicates whether to keep processing entries for the template file.  If
155       * this is <CODE>false</CODE>, then LDIF processing will end immediately (and
156       * the current entry will not be included).
157       *
158       * @return  <CODE>true</CODE> if processing for the template file should
159       *          continue, or <CODE>false</CODE> if not.
160       */
161      public boolean keepProcessingTemplateFile()
162      {
163        return keepProcessingTemplateFile;
164      }
165    }
166