All Downloads are FREE. Search and download functionalities are using the official Maven repository.

nfa.UPNFAState Maven / Gradle / Ivy

Go to download

A tool to perform static analysis on regexes to determine whether they are vulnerable to ReDoS.

There is a newer version: 1.0.8
Show newest version
package nfa;

import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

public class UPNFAState extends NFAVertexND {
	
	private final Set P;
	public Set getP() {
		return P;
	}
	
	public UPNFAState(Collection q, Set P) {
		super(q);
		this.P = new HashSet(P);
	}
	
	@Override
	public UPNFAState copy() {
		return new UPNFAState(super.getStates(), P);
	}
	
	@Override
	public boolean equals(Object o) {
		boolean superEquals = super.equals(o);
		if (!superEquals) {
			return false;
		}
		if (!(o instanceof UPNFAState)) {
			return false;
		}
		UPNFAState p = (UPNFAState) o;
		return P.equals(p.P);
	}
	
	@Override
	public String toString() {
		StringBuilder sb = new StringBuilder("({");
		Iterator i0 = getStates().iterator();
		while (i0.hasNext()) {
			String state = i0.next();
			sb.append(state);
			if (i0.hasNext()) {
				sb.append(", ");
			}
		}
		sb.append("}, {");
		Iterator i1 = P.iterator();
		while (i1.hasNext()) {
			NFAVertexND state = i1.next();
			sb.append(state);
			if (i1.hasNext()) {
				sb.append(", ");
			}
		}
		sb.append("}}");
		
		return sb.toString();
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy