Revision 1266 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
62 62
    private static final Logger logger = LoggerFactory
63 63
        .getLogger(DefaultPackageInfo.class);
64 64

  
65
    private static PackageManager packageManager = null;
66
    
65 67
	public static interface PACKAGE_FILE_NAME_FIELDS {
66 68
		static final int GVSIG_VERSION = 0;
67 69
		static final int NAME = 1;
......
117 119
        this.aditionalProperties = new HashMap();
118 120
    }
119 121

  
122
    private PackageManager getPackageManager() {
123
        if( packageManager==null ) {
124
            packageManager = ToolsLocator.getPackageManager();
125
        }
126
        return packageManager;
127
    }
128
    
120 129
    public String getCode() {
121 130
    	if( code == null ) {
122 131
    		return null;
......
493 502
    public boolean matchID(String string) {
494 503
        String id = this.getID();
495 504
        String[] stringParts = string.split("#");
496

  
505
        Version version; 
506
        
497 507
        switch (stringParts.length) {
498
        case 1:
508
        case 1: // id
499 509
            if (stringParts[0].equals(this.getCode())) {
500 510
                return true;
501 511
            } else {
502 512
                return false;
503 513
            }
504
        case 2:
514
        case 2: // id, version
505 515
            if (!stringParts[0].equals(this.getCode())) {
506 516
                return false;
507 517
            }
508
            Version version = new DefaultVersion();
518
            version = new DefaultVersion();
509 519
            try {
510 520
                version.parse(stringParts[1]);
511 521
            } catch (InvalidParameterException ex) {
......
516 526
                return true;
517 527
            }
518 528
            return false;
529
        case 4: // id, version, os, arch
530
            if (!stringParts[0].equals(this.getCode())) {
531
                return false;
532
            }
533
            if( !"any".equalsIgnoreCase(stringParts[1]) ) {
534
                version = new DefaultVersion();
535
                try {
536
                    version.parse(stringParts[1]);
537
                } catch (InvalidParameterException ex) {
538
                    return false;
539
                }
540

  
541
                if (!version.equals(this.getVersion())) {
542
                    return false;
543
                }
544
            }
545
            if( !"any".equalsIgnoreCase(stringParts[2]) ) {
546
                if( "current".equalsIgnoreCase(stringParts[2]) ) {
547
                    if( !this.getOperatingSystem().equalsIgnoreCase(this.getPackageManager().getOperatingSystem()) ) {
548
                        return false;
549
                    }
550
                } else if( !this.getOperatingSystem().equalsIgnoreCase(stringParts[2]) ) {
551
                    return false;
552
                }
553
            }
554
            if( !"any".equalsIgnoreCase(stringParts[3]) ) {
555
                if( "current".equalsIgnoreCase(stringParts[3]) ) {
556
                    if( !this.getArchitecture().equalsIgnoreCase(this.getPackageManager().getArchitecture()) ) {
557
                        return false;
558
                    }
559
                } else if( !this.getArchitecture().equalsIgnoreCase(stringParts[3]) ) {
560
                    return false;
561
                }
562
            }
563
            return true;
564
            
519 565
        default:
520 566
            return string.equals(id);
521 567

  

Also available in: Unified diff