@Override public String getVersionString() { if ( versionString == null ) { versionString = versionSpec.renderStandard(); } return versionString; }
public boolean isSingle() { return specs.size() == 1 && specs.get( 0 ) .isSingle(); }
public boolean isSnapshot() { for ( final VersionSpec spec : specs ) { if ( spec.isSnapshot() ) { return true; } } return false; }
public CompoundVersionSpec( final String rawExpression, final List<VersionSpec> specs ) { this.rawExpression = rawExpression; final List<VersionSpec> s = new ArrayList<VersionSpec>(); for ( final VersionSpec spec : specs ) { if ( spec.isSingle() ) { final SingleVersion sv = (SingleVersion) spec; s.add( new RangeVersionSpec( "[" + spec.renderStandard() + "]", sv, sv, true, true ) ); } else { s.add( spec ); } } Collections.sort( s, VersionSpecComparisons.comparator() ); this.specs = Collections.unmodifiableList( s ); }
@Override public NeoProjectVersionRef selectVersion( final SingleVersion version, final boolean force ) { final VersionSpec versionSpec = getVersionSpec(); if ( versionSpec.equals( version ) ) { return this; } if ( !force && !versionSpec.contains( version ) ) { throw new IllegalArgumentException( "Specified version: " + version.renderStandard() + " is not contained in spec: " + versionSpec.renderStandard() ); } return newRef( getGroupId(), getArtifactId(), version ); }
@Override public boolean contains( final VersionSpec version ) { if ( version.isSingle() ) { final SingleVersion sv = version.getSingleVersion(); if ( !getBaseVersion().equals( sv.getBaseVersion() ) ) { // if my base version doesn't match the other's base version, there's no way I can contain it. return false; } if ( isLocalSnapshot() ) { // if I'm a local snapshot, then I can contain any other single snapshot. return version.isSnapshot(); } else if ( sv.isLocalSnapshot() ) { // either I'm a release or a timestamped snapshot. // if the other one is a local snapshot, I DON'T contain it. return false; } return true; } return false; }
public boolean contains( final VersionSpec version ) { for ( final VersionSpec spec : specs ) { if ( spec.contains( version ) ) { return true; } } return false; }
@Override public boolean isRelease() { return getVersionSpec().isRelease(); }
public SingleVersion getConcreteVersion() { return specs.size() != 1 ? null : specs.get( 0 ) .getConcreteVersion(); }
@Override public int compare( final ProjectVersionRef f, final ProjectVersionRef s ) { final int comp = f.compareTo( s ); // this compares groupId and artifactId ONLY if ( comp == 0 ) { final VersionSpec fs = f.getVersionSpec(); final VersionSpec ss = s.getVersionSpec(); return fs.compareTo( ss ); } return comp; }
@Override public SimpleProjectVersionRef selectVersion( final SingleVersion version, final boolean force ) { final VersionSpec versionSpec = getVersionSpec(); if ( versionSpec.equals( version ) ) { return this; } if ( !force && !versionSpec.contains( version ) ) { throw new IllegalArgumentException( "Specified version: " + version.renderStandard() + " is not contained in spec: " + versionSpec.renderStandard() ); } return newRef( getGroupId(), getArtifactId(), version ); }
@Override public boolean matchesVersion( final SingleVersion version ) { return getVersionSpec().contains( version ); }
@Override public boolean isRelease() { return getVersionSpec().isRelease(); }
public String renderStandard() { if ( rawExpression == null ) { final StringBuilder sb = new StringBuilder(); for ( final VersionSpec spec : specs ) { sb.append( spec.renderStandard() ); } return sb.toString(); } else { return rawExpression; } }
@Override public boolean isSpecificVersion() { return getVersionSpec().isSingle(); }
@Override public boolean isSnapshot() { return getVersionSpec().isSnapshot(); }
@Override public boolean matchesVersion( final SingleVersion version ) { return getVersionSpec().contains( version ); }
@Override public String getVersionString() { if ( versionString == null ) { String v = getVersionStringRaw(); if ( v == null ) { return versionSpec.renderStandard(); } return v; } return versionString; }
@Override public boolean isCompound() { return !getVersionSpec().isSingle(); }
@Override public boolean isSnapshot() { return getVersionSpec().isSnapshot(); }