use of org.eclipse.n4js.semver.Semver.VersionRangeSetRequirement in project n4js by eclipse.
the class SemverSemanticSequencer method sequence.
@Override
public void sequence(ISerializationContext context, EObject semanticObject) {
EPackage epackage = semanticObject.eClass().getEPackage();
ParserRule rule = context.getParserRule();
Action action = context.getAssignedAction();
Set<Parameter> parameters = context.getEnabledBooleanParameters();
if (epackage == SemverPackage.eINSTANCE)
switch(semanticObject.eClass().getClassifierID()) {
case SemverPackage.GIT_HUB_VERSION_REQUIREMENT:
sequence_GitHubVersionRequirement(context, (GitHubVersionRequirement) semanticObject);
return;
case SemverPackage.HYPHEN_VERSION_RANGE:
sequence_HyphenVersionRange(context, (HyphenVersionRange) semanticObject);
return;
case SemverPackage.LOCAL_PATH_VERSION_REQUIREMENT:
sequence_LocalPathVersionRequirement(context, (LocalPathVersionRequirement) semanticObject);
return;
case SemverPackage.QUALIFIER:
sequence_Qualifier(context, (Qualifier) semanticObject);
return;
case SemverPackage.QUALIFIER_TAG:
sequence_QualifierTag(context, (QualifierTag) semanticObject);
return;
case SemverPackage.SIMPLE_VERSION:
sequence_SimpleVersion(context, (SimpleVersion) semanticObject);
return;
case SemverPackage.TAG_VERSION_REQUIREMENT:
sequence_TagVersionRequirement(context, (TagVersionRequirement) semanticObject);
return;
case SemverPackage.URL_COMMIT_ISH:
sequence_URLVersionSpecifier(context, (URLCommitISH) semanticObject);
return;
case SemverPackage.URL_SEMVER:
sequence_URLSemver(context, (URLSemver) semanticObject);
return;
case SemverPackage.URL_VERSION_REQUIREMENT:
sequence_URLVersionRequirement(context, (URLVersionRequirement) semanticObject);
return;
case SemverPackage.VERSION_NUMBER:
sequence_VersionNumber(context, (VersionNumber) semanticObject);
return;
case SemverPackage.VERSION_PART:
sequence_VersionPart(context, (VersionPart) semanticObject);
return;
case SemverPackage.VERSION_RANGE_CONSTRAINT:
sequence_VersionRangeContraint(context, (VersionRangeConstraint) semanticObject);
return;
case SemverPackage.VERSION_RANGE_SET_REQUIREMENT:
sequence_VersionRangeSetRequirement(context, (VersionRangeSetRequirement) semanticObject);
return;
}
if (errorAcceptor != null)
errorAcceptor.accept(diagnosticProvider.createInvalidContextOrTypeDiagnostic(semanticObject, context));
}
use of org.eclipse.n4js.semver.Semver.VersionRangeSetRequirement in project n4js by eclipse.
the class SemverUtils method isWildcardVersionRequirement.
/**
* Tells if the given version requirement is a wildcard version requirement, as obtained by parsing the string "*".
*/
public static boolean isWildcardVersionRequirement(NPMVersionRequirement versionRequirement) {
if (versionRequirement instanceof VersionRangeSetRequirement) {
List<VersionRange> ranges = ((VersionRangeSetRequirement) versionRequirement).getRanges();
VersionRange range = ranges.size() == 1 ? ranges.get(0) : null;
List<SimpleVersion> constraints = range instanceof VersionRangeConstraint ? ((VersionRangeConstraint) range).getVersionConstraints() : Collections.emptyList();
SimpleVersion simple = constraints.size() == 1 ? constraints.get(0) : null;
if (simple != null) {
return simple.isWildcard();
}
}
return false;
}
use of org.eclipse.n4js.semver.Semver.VersionRangeSetRequirement in project n4js by eclipse.
the class PackageJsonValidatorExtension method checkVersion.
/**
* Check the version property.
*/
@CheckProperty(property = VERSION)
public void checkVersion(JSONValue versionValue) {
if (!checkIsType(versionValue, JSONPackage.Literals.JSON_STRING_LITERAL, "as package version")) {
return;
}
JSONStringLiteral versionJsonString = (JSONStringLiteral) versionValue;
String versionString = versionJsonString.getValue();
IParseResult parseResult = validateSemver(versionValue, versionString);
NPMVersionRequirement npmVersion = semverHelper.parse(parseResult);
VersionRangeSetRequirement vrs = semverHelper.parseVersionRangeSet(parseResult);
if (vrs == null) {
String reason = "Cannot parse given string";
if (npmVersion != null) {
reason = "Given string is parsed as " + getVersionRequirementType(npmVersion);
}
String msg = IssueCodes.getMessageForPKGJ_INVALID_VERSION_NUMBER(versionString, reason);
addIssue(msg, versionValue, IssueCodes.PKGJ_INVALID_VERSION_NUMBER);
return;
}
if (!vrs.getRanges().isEmpty() && vrs.getRanges().get(0) instanceof VersionRangeConstraint) {
VersionRangeConstraint vrc = (VersionRangeConstraint) vrs.getRanges().get(0);
SimpleVersion simpleVersion = vrc.getVersionConstraints().get(0);
if (!simpleVersion.getComparators().isEmpty()) {
String comparator = SemverSerializer.serialize(simpleVersion.getComparators().get(0));
String reason = "Version numbers must not have comparators: '" + comparator + "'";
String msg = IssueCodes.getMessageForPKGJ_INVALID_VERSION_NUMBER(versionString, reason);
addIssue(msg, versionValue, IssueCodes.PKGJ_INVALID_VERSION_NUMBER);
return;
}
}
}
use of org.eclipse.n4js.semver.Semver.VersionRangeSetRequirement in project n4js by eclipse.
the class SemverHelper method parseVersionNumber.
/**
* @return {@link VersionNumber} of the given {@link IParseResult}
*/
public VersionNumber parseVersionNumber(IParseResult semverParseResult) {
VersionRangeSetRequirement vrs = parseVersionRangeSet(semverParseResult);
if (vrs == null || vrs.getRanges().isEmpty()) {
return null;
}
VersionRange firstVersionRange = vrs.getRanges().get(0);
if (!(firstVersionRange instanceof VersionRangeConstraint)) {
return null;
}
VersionRangeConstraint vrc = (VersionRangeConstraint) firstVersionRange;
if (vrc.getVersionConstraints().isEmpty()) {
return null;
}
SimpleVersion firstSimpleVersion = vrc.getVersionConstraints().get(0);
return firstSimpleVersion.getNumber();
}
use of org.eclipse.n4js.semver.Semver.VersionRangeSetRequirement in project n4js by eclipse.
the class SemverUtils method createVersionRangeSet.
/**
* Creates a new instance of {@link VersionRangeSetRequirement} with the given properties.
*/
public static VersionRangeSetRequirement createVersionRangeSet(VersionComparator comparator, VersionNumber version) {
VersionNumber versionNumber = copyVersionNumber(version);
SimpleVersion simpleVersion = SemverFactory.eINSTANCE.createSimpleVersion();
simpleVersion.setNumber(versionNumber);
simpleVersion.getComparators().add(comparator);
VersionRangeConstraint versionRangeConstraint = SemverFactory.eINSTANCE.createVersionRangeConstraint();
versionRangeConstraint.getVersionConstraints().add(simpleVersion);
VersionRangeSetRequirement versionRangeSet = SemverFactory.eINSTANCE.createVersionRangeSetRequirement();
versionRangeSet.getRanges().add(versionRangeConstraint);
return versionRangeSet;
}
Aggregations