主要枚举类:
package com.grddt.rddig.strategy;
public enum DealType {
SIGLEP_TYPE(new Siglep()),
DAPETURE_TYPE(new Daperture()),
DSUFFIX_TYPE(new Dsuffix()),
DPREFIX_TYPE(new Dprefix()),
MATCHEDG_TYPE(new Matchg());
private GerStatement gerStatement;
// 构造方法初始化属性 gerStatement
DealType(GerStatement gerStatement) {
this.gerStatement = gerStatement;
}
public GerStatement get() {
return this.gerStatement;
}
}
接口方法
public interface GerStatement {
StatementInterface dealStatement(Gerber gerber, StatementInterface statement, Matcher matcher, int lineIndex, String parameterCode, String modifiers) throws IllegalPositionException, UnsupportedIndexException, IllegalReflectionException, NoLastStatementExistsException, ApertureNotDefinedException, ApertureMacroNotDefinedException, UnsupportedApertureException, UnsupportedMacroException, IllegalParameterModifiersException, UnsupportedParameterCodeException, ArithmeticExpressionUnsupportedException, IllegalParameterException;
}
实现类
public class Dprefix implements GerStatement {
@Override
public StatementInterface dealStatement(Gerber gerber, StatementInterface statement, Matcher matcher, int lineIndex, String parameterCode, String modifiers) throws IllegalPositionException, UnsupportedIndexException, ApertureNotDefinedException {
int dIndex = Integer.parseInt(matcher.group(1));
if (statement != null) {
gerber.add(statement);
}
statement = StatementFactory.createDStatement(dIndex, null, gerber);
return statement;
}
}