Revision 2616

View differences:

org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.lib/org.gvsig.raster.lib.impl/src/main/java/org/gvsig/raster/util/DefaultProviderServices.java
457 457
		if (serializerObject == null)
458 458
			throw new RmfSerializerException("No se ha podido encontrar el serializador para el Rmf");
459 459

  
460
		if (!blocksManager.checkRmf())
461
			throw new RmfSerializerException("Error al comprobar el fichero Rmf");
460
		if (!blocksManager.checkRmf()) {
461
			log.info("Error al comprobar el fichero Rmf");
462
		}
462 463

  
463 464
		blocksManager.addClient(serializerObject);
464 465
		try {
465 466
			blocksManager.write(true);
466 467
		} catch (IOException e) {
467
			throw new RmfSerializerException("Error al escribir el fichero Rmf", e);
468
			log.info("Error al escribir el fichero Rmf", e);
468 469
		}
469 470
		blocksManager.removeAllClients();
470 471
	}
org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.lib/org.gvsig.raster.lib.impl/src/main/java/org/gvsig/raster/impl/store/serializer/ColorInterpretationRmfSerializer.java
46 46
 * \<Band\>Blue\</Band\><BR>
47 47
 * \</ColorInterpretation\><BR>
48 48
 *
49
 * @version 14/01/2008
50 49
 * @author Nacho Brodin (nachobrodin@gmail.com)
51 50
 */
52 51
public class ColorInterpretationRmfSerializer extends ClassSerializer {
......
80 79
	public ColorInterpretationRmfSerializer() {
81 80
	}
82 81

  
83
	/*
84
	 * (non-Javadoc)
85
	 * @see org.gvsig.raster.dataset.io.rmf.IRmfBlock#read(java.lang.String)
86
	 */
87 82
	public void read(String xml) throws ParsingException {
88 83
		String cInterp = null;
89 84
		datasetCI = new DataStoreColorInterpretation();
......
129 124
		}
130 125
	}
131 126

  
132
	/*
133
	 * (non-Javadoc)
134
	 * @see org.gvsig.raster.dataset.io.rmf.IRmfBlock#write()
135
	 */
136 127
	public String write() {
137 128
		StringBuffer b = new StringBuffer();
138 129
		if (datasetCI == null)
......
150 141
		return b.toString();
151 142
	}
152 143

  
153
	/*
154
	 * (non-Javadoc)
155
	 * @see org.gvsig.raster.dataset.io.rmf.IRmfBlock#getResult()
156
	 */
157 144
	public Object getResult() {
158 145
		return datasetCI;
159 146
	}
160 147

  
161
	/*
162
	 *  (non-Javadoc)
163
	 * @see org.gvsig.raster.dataset.io.rmf.IRmfBlock#getMainTag()
164
	 */
165 148
	public String getMainTag() {
166 149
		return MAIN_TAG;
167 150
	}
org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.lib/org.gvsig.raster.lib.impl/src/main/java/org/gvsig/raster/impl/store/serializer/TimeSeriesRmfSerializer.java
60 60
 * \</TimeSeries\><BR>
61 61
 * </P>
62 62
 *
63
 * @version 23/04/2007
64 63
 * @author Nacho Brodin (nachobrodin@gmail.com)
65 64
 */
66 65
public class TimeSeriesRmfSerializer extends ClassSerializer {
......
175 174
		parserDates(tInfo, parser, DATES, null);
176 175
	}
177 176

  
178
	/*
179
	 * (non-Javadoc)
180
	 * @see org.gvsig.raster.dataset.io.rmf.IRmfBlock#read(java.lang.String)
181
	 */
182 177
	public void read(String xml) throws ParsingException {
183 178
		ArrayList<DefaultSerialInfo> list = new ArrayList<DefaultSerialInfo>();
184 179
		DefaultSerialInfo tInfo = null;
......
241 236
		((DefaultTimeSerials)serialInfo).addSerialInfo(tInfo);//.setSerial(list);
242 237
	}
243 238

  
244
	/*
245
	 * (non-Javadoc)
246
	 * @see org.gvsig.raster.dataset.io.rmf.IRmfBlock#write()
247
	 */
248 239
	public String write() {
249 240
		StringBuffer b = new StringBuffer();
250 241
		DefaultTimeSerials si = (DefaultTimeSerials)serialInfo;
......
267 258
		return b.toString();
268 259
	}
269 260

  
270
	/*
271
	 * (non-Javadoc)
272
	 * @see org.gvsig.raster.dataset.io.rmf.IRmfBlock#getResult()
273
	 */
274 261
	public Object getResult() {
275 262
		return serialInfo;
276 263
	}
277 264

  
278
	/*
279
	 *  (non-Javadoc)
280
	 * @see org.gvsig.raster.dataset.io.rmf.IRmfBlock#getMainTag()
281
	 */
282 265
	public String getMainTag() {
283 266
		return MAIN_TAG;
284 267
	}
org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.lib/org.gvsig.raster.lib.impl/src/main/java/org/gvsig/raster/impl/store/serializer/StatisticsRmfSerializer.java
227 227
			return valueList;
228 228
	}
229 229

  
230
	/*
231
	 * (non-Javadoc)
232
	 * @see org.gvsig.raster.dataset.io.rmf.IRmfBlock#read(java.lang.String)
233
	 */
234 230
	public void read(String xml) throws ParsingException {
235 231
		int bandCount = 0;
236 232
		double[] max = null, maxRGB = null;
......
307 303
		getDatasetStatistics().setCalculated(true);
308 304
	}
309 305

  
310
	/*
311
	 * (non-Javadoc)
312
	 * @see org.gvsig.raster.dataset.io.rmf.IRmfBlock#write()
313
	 */
314 306
	public String write() {
315 307
		if (stat == null)
316 308
			return "";
......
357 349
		return b.toString();
358 350
	}
359 351

  
360
	/*
361
	 * (non-Javadoc)
362
	 * @see org.gvsig.raster.dataset.io.rmf.IRmfBlock#getResult()
363
	 */
364 352
	public Object getResult() {
365 353
		return stat;
366 354
	}
367 355

  
368
	/*
369
	 *  (non-Javadoc)
370
	 * @see org.gvsig.raster.dataset.io.rmf.IRmfBlock#getMainTag()
371
	 */
372 356
	public String getMainTag() {
373 357
		return MAIN_TAG;
374 358
	}
org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.lib/org.gvsig.raster.lib.impl/src/main/java/org/gvsig/raster/impl/store/serializer/ProjectionRmfSerializer.java
47 47
 * </P>
48 48
 * <P>
49 49
 *
50
 * @version 20/05/2008
51 50
 * @author BorSanZa - Borja S?nchez Zamorano 
52 51
 */
53 52
public class ProjectionRmfSerializer extends ClassSerializer {
......
73 72
	public ProjectionRmfSerializer() {
74 73
	}
75 74

  
76
	/*
77
	 * (non-Javadoc)
78
	 * @see org.gvsig.raster.dataset.io.rmf.IRmfBlock#getMainTag()
79
	 */
80 75
	public String getMainTag() {
81 76
		return MAIN_TAG;
82 77
	}
83 78

  
84
	/*
85
	 * (non-Javadoc)
86
	 * @see org.gvsig.raster.dataset.io.rmf.IRmfBlock#getResult()
87
	 */
88 79
	public Object getResult() {
89 80
		return projection;
90 81
	}
91 82

  
92
	/*
93
	 * (non-Javadoc)
94
	 * @see org.gvsig.raster.dataset.io.rmf.IRmfBlock#read(java.lang.String)
95
	 */
96 83
	public void read(String xml) throws ParsingException {
97 84
		CRSUtils util = RasterLocator.getManager().getCRSUtils();
98 85
		KXmlParser parser = new KXmlParser();
......
132 119
		}
133 120
	}
134 121

  
135
	/*
136
	 * (non-Javadoc)
137
	 * @see org.gvsig.raster.dataset.io.rmf.IRmfBlock#write()
138
	 */
139 122
	public String write() throws IOException {
140 123
		CRSUtils util = RasterLocator.getManager().getCRSUtils();
141 124
		StringBuffer b = new StringBuffer();
org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.lib/org.gvsig.raster.lib.impl/src/main/java/org/gvsig/raster/impl/store/serializer/GeoPointListRmfSerializer.java
185 185
		gp.setActive(Boolean.valueOf(parserString(parser, ACTIVE, null)).booleanValue());
186 186
	}
187 187

  
188
	/*
189
	 * (non-Javadoc)
190
	 * @see org.gvsig.raster.dataset.io.rmf.IRmfBlock#read(java.lang.String)
191
	 */
192 188
	public void read(String xml) throws ParsingException {
193 189
		ArrayList<GeoPointImpl> list = new ArrayList<GeoPointImpl>();
194 190
		GeoPointImpl gp = null;
195 191
		boolean init = false;
196
		int nPoint = -1;
197 192
		boolean tagOk = false;
198 193
		boolean vpRead = false;
199 194

  
......
222 217
								if (parser.getName().compareTo(GEOPOINT) == 0) {
223 218
									gp = new GeoPointImpl();
224 219
									tagOk = true;
225
									nPoint++;
226 220
								}
227 221
							}
228 222
							break;
......
252 246
			gpList.add((GeoPointImpl) list.get(i));
253 247
	}
254 248

  
255
	/*
256
	 * (non-Javadoc)
257
	 * @see org.gvsig.raster.dataset.io.rmf.IRmfBlock#write()
258
	 */
259 249
	public String write() {
260 250
		if(gpList == null || gpList.size() == 0)
261 251
			return null;
......
277 267
		return b.toString();
278 268
	}
279 269

  
280
	/*
281
	 * (non-Javadoc)
282
	 * @see org.gvsig.raster.dataset.io.rmf.IRmfBlock#getResult()
283
	 */
284 270
	public Object getResult() {
285 271
		return gpList;
286 272
	}
......
292 278
	public DefaultViewPortData getViewPort() {
293 279
		return viewPort;
294 280
	}
295

  
296
	/*
297
	 *  (non-Javadoc)
298
	 * @see org.gvsig.raster.dataset.io.rmf.IRmfBlock#getMainTag()
299
	 */
281
	
300 282
	public String getMainTag() {
301 283
		return MAIN_TAG;
302 284
	}
org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.lib/org.gvsig.raster.lib.impl/src/main/java/org/gvsig/raster/impl/store/rmf/RmfBlocksManager.java
37 37
 * escribir en el se registrar? a traves de ClientRegister y esta clase ser? la encargada
38 38
 * de gestionar la lectura y escritura de bloques.
39 39
 *
40
 * 21-abr-2007
41 40
 * @author Nacho Brodin (nachobrodin@gmail.com)
42 41
 */
43 42
public class RmfBlocksManager extends ClientRegister implements IRmfBlock {
44 43
	private final String MAIN_TAG = "RasterMetaFile";
44
	private String       version  = "1.0";
45
	
45 46
	private String path = null;
46 47

  
47 48
	/**
......
76 77
		RasterLocator.getManager().getFileUtils().copyFile(getPath(), getPath() + "~");
77 78
	}
78 79

  
79
	/*
80
	 *  (non-Javadoc)
81
	 * @see org.gvsig.raster.dataset.io.rmf.IRmfBlock#read(java.lang.String)
82
	 */
83 80
	public void read(String xml) throws ParsingException {
84 81
		File file = new File(getPath());
85 82
		ArrayList<String> lines = new ArrayList<String>();
......
133 130
		file.createNewFile();
134 131
		FileWriter writer = new FileWriter(file);
135 132
		writer.write("<?xml version=\"1.0\" encoding=\"ISO-8859-15\"?>\n");
136
		writer.write("<RasterMetaFile>\n");
133
		writer.write("<" + getMainTag() + " version=\"" + version + "\">\n");
137 134
		for (int i = 0; i < clients.size(); i++) {
138 135
			IRmfBlock block = ((IRmfBlock) clients.get(i));
139 136
			String xmlBlock = block.write();
140 137
			if(xmlBlock != null)
141 138
				writer.write(xmlBlock);
142 139
		}
143
		writer.write("</RasterMetaFile>\n");
140
		writer.write("</" + getMainTag() + ">\n");
144 141
		writer.close();
145 142
	}
146 143

  
147
	/*
148
	 *  (non-Javadoc)
149
	 * @see org.gvsig.raster.dataset.io.rmf.IRmfBlock#write()
150
	 */
151 144
	public String write() throws IOException {
152 145
		File file = new File(getPath());
153 146
		ArrayList<String> lines = new ArrayList<String>();
......
247 240
			try {
248 241
				inGrf = new BufferedReader(new InputStreamReader(new FileInputStream(f)));
249 242
				String str = inGrf.readLine();
250
				if (!str.startsWith("<?xml"))
243
				if (!str.startsWith("<?xml")) {
244
					inGrf.close();
251 245
					return false;
246
				}
247
				while (str != null) {
248
					if (str.startsWith("<" + getMainTag())) {
249
						inGrf.close();
250
						if(str.contains("version=\"")) {
251
							String versionNbr = str.substring(str.indexOf("version=\"") + 9);
252
							versionNbr = versionNbr.substring(0, versionNbr.indexOf("\""));
253
							if(!versionNbr.equals(version)) {
254
								return false;
255
							}
256
						} 
257
						return true;
258
					}
259
					str = inGrf.readLine();
260
				}
261
				inGrf.close();
252 262
			} catch (FileNotFoundException e) {
253 263
				return false;
254 264
			} catch (IOException e) {
......
258 268
		return true;
259 269
	}
260 270

  
261
	/*
262
	 * (non-Javadoc)
263
	 * @see org.gvsig.raster.dataset.io.rmf.IRmfBlock#getMainTag()
264
	 */
265 271
	public String getMainTag() {
266 272
		return MAIN_TAG;
267 273
	}
268 274

  
269
	/*
270
	 * (non-Javadoc)
271
	 * @see org.gvsig.raster.dataset.io.rmf.IRmfBlock#getResult()
272
	 */
273 275
	public Object getResult() {
274 276
		return null;
275 277
	}
org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.lib/org.gvsig.raster.lib.impl/src/main/java/org/gvsig/raster/impl/datastruct/DefaultNoData.java
195 195
	}
196 196
	
197 197
	public void load() {
198
		try {
199
			String fileRMF = RasterLocator.getManager().getFileUtils().getNameWithoutExtension(fileName) + ".rmf";
200
			RmfBlocksManager blocksManager = new RmfBlocksManager(fileRMF);
201
			ClassSerializer serializerObject = new NoDataRmfSerializer(this);
198
		String fileRMF = RasterLocator.getManager().getFileUtils().getNameWithoutExtension(fileName) + ".rmf";
199
		RmfBlocksManager blocksManager = new RmfBlocksManager(fileRMF);
200
		ClassSerializer serializerObject = new NoDataRmfSerializer(this);
202 201

  
203
			if (!blocksManager.checkRmf())
204
				throw new RmfSerializerException("Error al comprobar el fichero Rmf");
202
		if (!blocksManager.checkRmf()) {
203
			log.info("Error al comprobar el fichero Rmf " + fileRMF);
204
		}
205 205

  
206
			blocksManager.addClient(serializerObject);
207
			try {
208
				if(new File(fileRMF).exists())
209
					blocksManager.read(null);
210
			} catch (Exception e) {
211
				log.log(Level.WARNING, "Error al escribir el fichero Rmf", e);
212
			}
213
			blocksManager.removeAllClients();
214
			
215
		} catch (RmfSerializerException e) {
216
			log.log(Level.SEVERE, "error_salvando_rmf", e);
206
		blocksManager.addClient(serializerObject);
207
		try {
208
			if(new File(fileRMF).exists())
209
				blocksManager.read(null);
210
		} catch (Exception e) {
211
			log.log(Level.WARNING, "Error al escribir el fichero Rmf", e);
217 212
		}
213
		blocksManager.removeAllClients();
218 214
	}
219 215
	
220 216
	public void setFileName(String fileName) {

Also available in: Unified diff