Revision 1431 org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.lib/src/main/java/org/gvsig/tools/packageutils/impl/DefaultPackageInfo.java

View differences:

DefaultPackageInfo.java
38 38
import java.util.Iterator;
39 39
import java.util.List;
40 40
import java.util.Map;
41
import org.apache.commons.lang3.StringUtils;
41 42

  
42 43
import org.gvsig.installer.lib.api.Dependencies;
43 44
import org.gvsig.installer.lib.api.Version;
......
88 89
    private boolean broken = false;
89 90

  
90 91
    private String state = STATE.DEVEL;
91
    private String operatingSystem = OS.ALL;
92
//    private String operatingSystem = OS.ALL;
93
    private String operatingSystemFamily = OS.ALL;
94
    private String operatingSystemName = null;
95
    private String operatingSystemVersion = null;
92 96
    private String architecture = ARCH.ALL;
93 97
    private String javaVM = JVM.J1_5;
94 98

  
......
236 240
        this.official = official;
237 241
    }
238 242

  
243
    @Override
239 244
    public String getOperatingSystem() {
240
        return operatingSystem;
245
        StringBuilder operatingSystem = new StringBuilder();
246
        operatingSystem.append(this.operatingSystemFamily);
247
        if( !StringUtils.isEmpty(this.operatingSystemName) ) {
248
            operatingSystem.append("_");
249
            operatingSystem.append(this.operatingSystemName);
250
            if( !StringUtils.isEmpty(this.operatingSystemVersion) ) {
251
                operatingSystem.append("_");
252
                operatingSystem.append(this.operatingSystemVersion);
253
            }
254
        }
255
        return operatingSystem.toString();
241 256
    }
242 257

  
258
    @Override
243 259
    public void setOperatingSystem(String operatingSystem) {
244 260
    	if( isEmptyString(operatingSystem) ) {
245
    		this.operatingSystem = OS.ALL;
261
    		this.operatingSystemFamily = OS.ALL;
262
    		this.operatingSystemName = null;
263
    		this.operatingSystemVersion = null;
246 264
    	} else {
247
    		this.operatingSystem = operatingSystem;
265
            if( operatingSystem.contains("_") ) {
266
                String s[] = operatingSystem.split("_");
267
                switch(s.length) {
268
                    case 2:
269
                        this.operatingSystemFamily = s[0];
270
                        this.operatingSystemName = s[1];
271
                        break;
272
                    case 3:
273
                        this.operatingSystemFamily = s[0];
274
                        this.operatingSystemName = s[1];
275
                        this.operatingSystemVersion = s[2];
276
                        break;
277
                    default:
278
                        throw new IllegalArgumentException("Can't parse OS '"+operatingSystem+"'.");
279
                }
280
            } else {
281
                this.operatingSystemFamily = operatingSystem;
282
            }
248 283
    	}
249 284
    }
285
    
286
    @Override
287
    public String getOperatingSystemFamily() {
288
        return this.operatingSystemFamily;
289
    }
290
    
291
    @Override
292
    public String getOperatingSystemName() {
293
        return this.operatingSystemName;
294
    }
295
    
296
    @Override
297
    public String getOperatingSystemVersion() {
298
        return this.operatingSystemVersion;
299
    }
250 300

  
301
    public void setOperatingSystemFamily(String operatingSystemFamily) {
302
        this.operatingSystemFamily = operatingSystemFamily;
303
    }
304
    
305
    public void setOperatingSystemName(String operatingSystemName) {
306
        this.operatingSystemName = operatingSystemName;
307
    }
308
    
309
    public void setOperatingSystemVersion(String operatingSystemVersion) {
310
        this.operatingSystemVersion = operatingSystemVersion;
311
    }
312

  
251 313
    public String getArchitecture() {
252 314
        return architecture;
253 315
    }
......
409 471
    	s.append(" ");
410 472
    	s.append(strformat(this.state,-5,-5));
411 473
    	s.append(" ");
412
    	s.append(strformat(this.operatingSystem,-5,-5)); 
474
    	s.append(strformat(this.getOperatingSystem(),-5,-5)); 
413 475
    	s.append(" ");
414 476
    	s.append(strformat(this.architecture,-6,-6));
415 477
    	s.append(" ");
......
585 647
        }
586 648
    }
587 649

  
650
    @Override
588 651
    public boolean equals(Object obj) {
589 652
        PackageInfo other;
590 653
        try {
......
598 661
        if (!version.check("=", other.getVersion())) {
599 662
            return false;
600 663
        }
601
        if (!operatingSystem.equalsIgnoreCase(other.getOperatingSystem())) {
664
        if (!getOperatingSystem().equalsIgnoreCase(other.getOperatingSystem())) {
602 665
            return false;
603 666
        }
604 667
        if (!applicationVersion.equals(other.getApplicationVersion())) {

Also available in: Unified diff