![JAR search and dependency download from the Maven repository](/logo.png)
net.officefloor.web.value.retrieve.ValueRetriever Maven / Gradle / Ivy
/*
* OfficeFloor - http://www.officefloor.net
* Copyright (C) 2005-2018 Daniel Sagenschneider
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
package net.officefloor.web.value.retrieve;
import java.lang.annotation.Annotation;
import net.officefloor.server.http.HttpException;
/**
* Retrieves a value from an object graph.
*
* @author Daniel Sagenschneider
*/
public interface ValueRetriever {
/**
* Retrieves the value from the object graph.
*
* @param object
* Root object of the object graph.
* @param name
* Property name.
* @return Property value.
* @throws HttpException
* If fails to retrieve the value.
*/
Object retrieveValue(T object, String name) throws HttpException;
/**
* Obtains the value type for the property on the object graph. It may be
* null
indicating the path does not exist on the bean graph.
*
* @param name
* Property name.
* @return Value type. May be null
if the path not exists.
* @throws HttpException
* If fails to determine if value is retrievable.
*/
Class> getValueType(String name) throws HttpException;
/**
* Obtains the value annotation for the property on the object graph. It may be
* null
indicating either:
*
* - the path does not exist on the bean graph, or
* - no annotation by type for property
*
*
* @param
* {@link Annotation} type.
* @param name
* Property name.
* @param annotationType
* Annotation type.
* @return Annotation. May be null
.
* @throws HttpException
* If fails to obtain annotation.
*/
A getValueAnnotation(String name, Class annotationType) throws HttpException;
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy