aboutsummaryrefslogtreecommitdiffstats
path: root/org.aspectj.matcher/src/main/java/org/aspectj/weaver/patterns/BasicToken.java
blob: c22b963ede76ea7ad371a0f4c340a37d4280de08 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
/* *******************************************************************
 * Copyright (c) 2002 Palo Alto Research Center, Incorporated (PARC).
 * All rights reserved.
 * This program and the accompanying materials are made available
 * under the terms of the Eclipse Public License v 2.0
 * which accompanies this distribution and is available at
 * https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.txt
 *
 * Contributors:
 *     PARC     initial implementation
 * ******************************************************************/


package org.aspectj.weaver.patterns;


public final class BasicToken implements IToken {
	private String value;
	private boolean isIdentifier;
	private String literalKind;

	private int start;
	private int end;

	public static BasicToken makeOperator(String value, int start, int end) {
		return new BasicToken(value.intern(), false, null, start, end);
	}

	public static BasicToken makeIdentifier(String value, int start, int end) {
		return new BasicToken(value, true, null, start, end);
	}

	public static BasicToken makeLiteral(String value, String kind, int start, int end) {
		return new BasicToken(value, false, kind.intern(), start, end);
	}


	private BasicToken(String value, boolean isIdentifier, String literalKind, int start, int end) {
		this.value = value;
		this.isIdentifier = isIdentifier;
		this.literalKind = literalKind;
		this.start = start;
		this.end = end;
	}

	public int getStart() { return start; }
	public int getEnd() { return end; }
	public String getFileName() { return "unknown"; }

	public String getString() {
		return value;
	}

	public boolean isIdentifier() {
		return isIdentifier;
	}

	public Pointcut maybeGetParsedPointcut() {
		return null;
	}



	public String toString() {
		String s;
		if (isIdentifier) s = value;
		else s = "'" + value + "'";

		return s + "@" + start + ":" + end;
	}
	public String getLiteralKind() {
		return literalKind;
	}

}