public static IItemFilter readFrom()

in core/org.openjdk.jmc.common/src/main/java/org/openjdk/jmc/common/item/PersistableItemFilter.java [144:195]


	public static IItemFilter readFrom(IState memento) {
		Kind kind = Kind.valueOf(memento.getAttribute(KEY_KIND));
		if (kind == null) {
			return null;
		}
		switch (kind) {
		case AND:
			return ItemFilters.and(readFrom(memento.getChildren(KEY_FILTER)));
		case OR:
			return ItemFilters.or(readFrom(memento.getChildren(KEY_FILTER)));
		case NOT:
			return ItemFilters.not(readFrom(memento.getChildren(KEY_FILTER)[0]));
		case MATCHES:
			return ItemFilters.matches(readStringAttribute(memento), memento.getAttribute(KEY_VALUE));
		case NOT_MATCHES:
			return ItemFilters.notMatches(readStringAttribute(memento), memento.getAttribute(KEY_VALUE));
		case CONTAINS:
			return ItemFilters.contains(readStringAttribute(memento), memento.getAttribute(KEY_VALUE));
		case NOT_CONTAINS:
			return ItemFilters.notContains(readStringAttribute(memento), memento.getAttribute(KEY_VALUE));
		case EQUALS:
			return readEquals(readAttribute(memento), memento);
		case NOT_EQUALS:
			return readNotEquals(readAttribute(memento), memento);
		case LESS:
		case LESS_OR_EQUAL:
		case MORE:
		case MORE_OR_EQUAL:
			return readComparableKindFrom(kind, memento);
		case RANGE_INTERSECTS:
		case RANGE_CONTAINED:
		case CENTER_CONTAINED:
		case RANGE_NOT_INTERSECTS:
		case RANGE_NOT_CONTAINED:
		case CENTER_NOT_CONTAINED:
			return readRangeMatchesFrom(kind, memento);
		case EXISTS:
			return ItemFilters.hasAttribute(readAttribute(memento));
		case NOT_EXISTS:
			return ItemFilters.notHasAttribute(readAttribute(memento));
		case TYPE:
			return ItemFilters.type(memento.getAttribute(KEY_TYPE));
		case TYPE_MATCHES:
			return ItemFilters.typeMatches(memento.getAttribute(KEY_TYPE_MATCHES));
		case IS_NULL:
			return ItemFilters.isNull(readAttribute(memento));
		case IS_NOT_NULL:
			return ItemFilters.isNotNull(readAttribute(memento));
		default:
			return null;
		}
	}