package com.netifera.platform.util.patternmatching; import java.util.Map; public class SessionPattern implements ISessionPattern { private final IPattern clientPattern; private final IPattern serverPattern; public SessionPattern(final IPattern clientPattern, final IPattern serverPattern) { this.clientPattern = clientPattern; this.serverPattern = serverPattern; } @Override public String toString() { StringBuffer buff = new StringBuffer(); if (clientPattern != null) { buff.append("CLIENT: "); buff.append(clientPattern.toString()); } if (serverPattern != null) { if (buff.length() > 0) { buff.append('\n'); } buff.append("SERVER: "); buff.append(serverPattern.toString()); } return buff.toString(); } public Map<String, String> match(final String clientData, final String serverData) { Map<String,String> answer; if (clientPattern == null) { return serverPattern.match(serverData); } answer = clientPattern.match(clientData); if (answer == null) return null; if (serverPattern == null) return answer; if (!serverPattern.match(answer, serverData)) return null; return answer; } }