001 // =================== DO NOT EDIT THIS FILE ==================== 002 // Generated by Modello 1.7, 003 // any modifications will be overwritten. 004 // ============================================================== 005 006 package org.apache.maven.model; 007 008 /** 009 * Class InputLocation. 010 * 011 * @version $Revision$ $Date$ 012 */ 013 @SuppressWarnings( "all" ) 014 public final class InputLocation 015 implements java.io.Serializable, java.lang.Cloneable, org.apache.maven.model.InputLocationTracker 016 { 017 018 //--------------------------/ 019 //- Class/Member Variables -/ 020 //--------------------------/ 021 022 /** 023 * The one-based line number. The value will be non-positive if 024 * unknown. 025 */ 026 private int lineNumber = -1; 027 028 /** 029 * The one-based column number. The value will be non-positive 030 * if unknown. 031 */ 032 private int columnNumber = -1; 033 034 /** 035 * Field source. 036 */ 037 private InputSource source; 038 039 /** 040 * Field locations. 041 */ 042 private java.util.Map<Object, InputLocation> locations; 043 044 045 //----------------/ 046 //- Constructors -/ 047 //----------------/ 048 049 public InputLocation(int lineNumber, int columnNumber) 050 { 051 this.lineNumber = lineNumber; 052 this.columnNumber = columnNumber; 053 } //-- org.apache.maven.model.InputLocation(int, int) 054 055 public InputLocation(int lineNumber, int columnNumber, InputSource source) 056 { 057 this.lineNumber = lineNumber; 058 this.columnNumber = columnNumber; 059 this.source = source; 060 } //-- org.apache.maven.model.InputLocation(int, int, InputSource) 061 062 063 //-----------/ 064 //- Methods -/ 065 //-----------/ 066 067 /** 068 * Method clone. 069 * 070 * @return InputLocation 071 */ 072 public InputLocation clone() 073 { 074 try 075 { 076 InputLocation copy = (InputLocation) super.clone(); 077 078 if ( copy.locations != null ) 079 { 080 copy.locations = new java.util.LinkedHashMap( copy.locations ); 081 } 082 083 return copy; 084 } 085 catch ( java.lang.Exception ex ) 086 { 087 throw (java.lang.RuntimeException) new java.lang.UnsupportedOperationException( getClass().getName() 088 + " does not support clone()" ).initCause( ex ); 089 } 090 } //-- InputLocation clone() 091 092 /** 093 * Get the one-based column number. The value will be 094 * non-positive if unknown. 095 * 096 * @return int 097 */ 098 public int getColumnNumber() 099 { 100 return this.columnNumber; 101 } //-- int getColumnNumber() 102 103 /** 104 * Get the one-based line number. The value will be 105 * non-positive if unknown. 106 * 107 * @return int 108 */ 109 public int getLineNumber() 110 { 111 return this.lineNumber; 112 } //-- int getLineNumber() 113 114 /** 115 * 116 * 117 * @param key 118 * @return InputLocation 119 */ 120 public InputLocation getLocation( Object key ) 121 { 122 return ( locations != null ) ? locations.get( key ) : null; 123 } //-- InputLocation getLocation( Object ) 124 125 /** 126 * 127 * 128 * @return Map<Object, InputLocation> 129 */ 130 public java.util.Map<Object, InputLocation> getLocations() 131 { 132 return locations; 133 } //-- java.util.Map<Object, InputLocation> getLocations() 134 135 /** 136 * Get the source field. 137 * 138 * @return InputSource 139 */ 140 public InputSource getSource() 141 { 142 return this.source; 143 } //-- InputSource getSource() 144 145 /** 146 * Method merge. 147 * 148 * @param target 149 * @param sourceDominant 150 * @param source 151 * @return InputLocation 152 */ 153 public static InputLocation merge( InputLocation target, InputLocation source, boolean sourceDominant ) 154 { 155 if ( source == null ) 156 { 157 return target; 158 } 159 else if ( target == null ) 160 { 161 return source; 162 } 163 164 InputLocation result = 165 new InputLocation( target.getLineNumber(), target.getColumnNumber(), target.getSource() ); 166 167 java.util.Map<Object, InputLocation> locations; 168 java.util.Map<Object, InputLocation> sourceLocations = source.getLocations(); 169 java.util.Map<Object, InputLocation> targetLocations = target.getLocations(); 170 if ( sourceLocations == null ) 171 { 172 locations = targetLocations; 173 } 174 else if ( targetLocations == null ) 175 { 176 locations = sourceLocations; 177 } 178 else 179 { 180 locations = new java.util.LinkedHashMap<Object, InputLocation>(); 181 locations.putAll( sourceDominant ? targetLocations : sourceLocations ); 182 locations.putAll( sourceDominant ? sourceLocations : targetLocations ); 183 } 184 result.setLocations( locations ); 185 186 return result; 187 } //-- InputLocation merge( InputLocation, InputLocation, boolean ) 188 189 /** 190 * Method merge. 191 * 192 * @param target 193 * @param indices 194 * @param source 195 * @return InputLocation 196 */ 197 public static InputLocation merge( InputLocation target, InputLocation source, java.util.Collection<Integer> indices ) 198 { 199 if ( source == null ) 200 { 201 return target; 202 } 203 else if ( target == null ) 204 { 205 return source; 206 } 207 208 InputLocation result = 209 new InputLocation( target.getLineNumber(), target.getColumnNumber(), target.getSource() ); 210 211 java.util.Map<Object, InputLocation> locations; 212 java.util.Map<Object, InputLocation> sourceLocations = source.getLocations(); 213 java.util.Map<Object, InputLocation> targetLocations = target.getLocations(); 214 if ( sourceLocations == null ) 215 { 216 locations = targetLocations; 217 } 218 else if ( targetLocations == null ) 219 { 220 locations = sourceLocations; 221 } 222 else 223 { 224 locations = new java.util.LinkedHashMap<Object, InputLocation>(); 225 for ( java.util.Iterator<Integer> it = indices.iterator(); it.hasNext(); ) 226 { 227 InputLocation location; 228 Integer index = it.next(); 229 if ( index.intValue() < 0 ) 230 { 231 location = sourceLocations.get( Integer.valueOf( ~index.intValue() ) ); 232 } 233 else 234 { 235 location = targetLocations.get( index ); 236 } 237 locations.put( Integer.valueOf( locations.size() ), location ); 238 } 239 } 240 result.setLocations( locations ); 241 242 return result; 243 } //-- InputLocation merge( InputLocation, InputLocation, java.util.Collection ) 244 245 /** 246 * 247 * 248 * @param key 249 * @param location 250 */ 251 public void setLocation( Object key, InputLocation location ) 252 { 253 if ( location != null ) 254 { 255 if ( this.locations == null ) 256 { 257 this.locations = new java.util.LinkedHashMap<Object, InputLocation>(); 258 } 259 this.locations.put( key, location ); 260 } 261 } //-- void setLocation( Object, InputLocation ) 262 263 /** 264 * 265 * 266 * @param locations 267 */ 268 public void setLocations( java.util.Map<Object, InputLocation> locations ) 269 { 270 this.locations = locations; 271 } //-- void setLocations( java.util.Map<Object, InputLocation> ) 272 273 274 275 276 @Override 277 public String toString() 278 { 279 return getLineNumber() + " : " + getColumnNumber() + ", " + getSource(); 280 } 281 282 283 }