// Path: src/main/java/org/wmaop/aop/interceptor/FlowPosition.java
// public class FlowPosition {
// 
// 	public final String packageName;
// 	public final String serviceName;
// 	public final String fqname;
// 	private InterceptPoint interceptPoint;
// 	
// 	public FlowPosition(InterceptPoint point, String fqname) {
// 		interceptPoint = point;
// 		if (fqname == null) {
// 			serviceName = "";
// 			packageName = "";
// 			this.fqname = "";
// 		} else {
// 			this.fqname = fqname;
// 			int pkgsep = fqname.lastIndexOf(':');
// 			if (pkgsep == -1) {
// 				serviceName = fqname;
// 				packageName = "";
// 			} else {
// 				serviceName = fqname.substring(pkgsep + 1);
// 				packageName = fqname.substring(0, pkgsep);
// 			}
// 		}
// 	}
// 	
// 	@Override
// 	public String toString() {
// 		return fqname;
// 	}
// 
// 	public void setInterceptPoint(InterceptPoint point) {
// 		interceptPoint = point;
// 	}
// 
// 	public InterceptPoint getInterceptPoint() {
// 		return interceptPoint;
// 	}
// 
// 	public String getPackageName() {
// 		return packageName;
// 	}
// 
// 	public String getServiceName() {
// 		return serviceName;
// 	}
// 
// 	public String getFqname() {
// 		return fqname;
// 	}
// }


import java.util.HashMap;
import java.util.Map;
import java.util.Stack;
import org.wmaop.aop.interceptor.FlowPosition;
import org.wmaop.util.logger.Logger;
import com.wm.app.b2b.server.InvokeState;
import com.wm.lang.ns.NSService;

package org.wmaop.aop.matcher;




public class CallingServicePositionMatcher implements FlowPositionMatcher {

	private final String serviceName;
	private final MatchResult matchTrue;
	private final String serviceNamespacePrefix;
	private final String id;

	private static final Logger logger = Logger.getLogger(CallingServicePositionMatcher.class);


// Path: src/main/java/org/wmaop/aop/interceptor/FlowPosition.java
// public class FlowPosition {
// 
// 	public final String packageName;
// 	public final String serviceName;
// 	public final String fqname;
// 	private InterceptPoint interceptPoint;
// 	
// 	public FlowPosition(InterceptPoint point, String fqname) {
// 		interceptPoint = point;
// 		if (fqname == null) {
// 			serviceName = "";
// 			packageName = "";
// 			this.fqname = "";
// 		} else {
// 			this.fqname = fqname;
// 			int pkgsep = fqname.lastIndexOf(':');
// 			if (pkgsep == -1) {
// 				serviceName = fqname;
// 				packageName = "";
// 			} else {
// 				serviceName = fqname.substring(pkgsep + 1);
// 				packageName = fqname.substring(0, pkgsep);
// 			}
// 		}
// 	}
// 	
// 	@Override
// 	public String toString() {
// 		return fqname;
// 	}
// 
// 	public void setInterceptPoint(InterceptPoint point) {
// 		interceptPoint = point;
// 	}
// 
// 	public InterceptPoint getInterceptPoint() {
// 		return interceptPoint;
// 	}
// 
// 	public String getPackageName() {
// 		return packageName;
// 	}
// 
// 	public String getServiceName() {
// 		return serviceName;
// 	}
// 
// 	public String getFqname() {
// 		return fqname;
// 	}
// }


// Path: src/main/java/org/wmaop/aop/matcher/CallingServicePositionMatcher.java
import java.util.HashMap;
import java.util.Map;
import java.util.Stack;
import org.wmaop.aop.interceptor.FlowPosition;
import org.wmaop.util.logger.Logger;
import com.wm.app.b2b.server.InvokeState;
import com.wm.lang.ns.NSService;

package org.wmaop.aop.matcher;




public class CallingServicePositionMatcher implements FlowPositionMatcher {

	private final String serviceName;
	private final MatchResult matchTrue;
	private final String serviceNamespacePrefix;
	private final String id;

	private static final Logger logger = Logger.getLogger(CallingServicePositionMatcher.class);


	public CallingServicePositionMatcher(String id, String serviceName, String serviceNamespacePrefix) {
