Revision 1266 org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.lib/src/main/java/org/gvsig/tools/packageutils/impl/DefaultPackageInfo.java
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