blob: a641ea528c889d6c74c450e26418fed6d8550fb6 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2006 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*
*******************************************************************************/
package org.eclipse.callisto.tools.utils;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class FullJarNameParser {
private static final boolean DEBUG = false;
// simplified pattern: (ID) '_' (N '.' M '.' O '.' S) '.jar'
private String START_GROUP = "(";//$NON-NLS-1$
private String END_GROUP = ")"; //$NON-NLS-1$
private String UNDERSCORE = "_"; //$NON-NLS-1$
private String BACKSLASH = "\\"; //$NON-NLS-1$
private String LITERAL_PERIOD = BACKSLASH + "."; //$NON-NLS-1$
private String ANYDIGITS = BACKSLASH + "d" + "*"; //$NON-NLS-1$ //$NON-NLS-2$
private String ANY = ".*"; //$NON-NLS-1$
private Pattern pattern = Pattern.compile(START_GROUP + ANY + END_GROUP + UNDERSCORE + START_GROUP + START_GROUP + ANYDIGITS + END_GROUP + LITERAL_PERIOD + START_GROUP + ANYDIGITS + END_GROUP + LITERAL_PERIOD + START_GROUP + ANYDIGITS + END_GROUP + START_GROUP + LITERAL_PERIOD + ANY + END_GROUP + "?" + END_GROUP + ".jar"); //$NON-NLS-1$ //$NON-NLS-2$
private String projectString;
private String versionString;
public FullJarNameParser() {
super();
}
public boolean parse(String line) {
boolean result = false;
projectString = ""; //$NON-NLS-1$
projectString = ""; //$NON-NLS-1$
Matcher matcher = pattern.matcher(line);
if (!matcher.matches()) {
System.out.println();
System.out.println("\tthe line did not match parse rule: "); //$NON-NLS-1$
System.out.println("\t" + line); //$NON-NLS-1$
System.out.println();
result = false;
}
else {
projectString = matcher.group(1);
versionString = matcher.group(2);
if (DEBUG) {
System.out.println(projectString);
System.out.println(versionString);
System.out.println();
}
result = true;
}
return result;
}
public String getProjectString() {
return projectString;
}
public String getVersionString() {
return versionString;
}
}