/******************************************************************************* * Copyright (c) 2016 Red Hat, Inc. * Distributed under license by Red Hat, Inc. All rights reserved. * This program is made available under the terms of the * Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Red Hat, Inc. - initial API and implementation ******************************************************************************/ package com.openshift.restclient.capability.resources; import java.util.Map; import com.openshift.restclient.capability.ICapability; /** * A mechanism to access the underlying content of a json * structure * * Relies on a dot delimited path to indentify the root of the entity * being returned (e.g. 'metadata.labels'). This does not provide * a mechanism to retrieve properties across an array kind. * * @author jeff.cantrill * */ public interface IPropertyAccessCapability extends ICapability { /** * * @param path * @return * * @throws @{@link UnresolvablePathException} when the path * does not resolve to an existing node */ Map<String, Object> asMap(String path); /** * Return the string value to the path * @param path * @return * @throws @{@link UnresolvablePathException} when the path * does not resolve to an existing node */ String asString(String path); /** * The exception thrown when a path given to the capability is * unresolvable * * @author jeff.cantrill * */ public static class UnresolvablePathException extends RuntimeException{ /** * */ private static final long serialVersionUID = 2422016683166925224L; } }