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