blob: d629be418a39a1d1b487dd433375887437d1c666 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.felix.webconsole.bundleinfo;
/**
* This entity defines additional bundle information entry, that is provided by
* the {@link BundleInfoProvider}. Each information entry is featured by name,
* value, type and description.
*
* @author Valentin Valchev
*/
public class BundleInfo
{
private final String name;
private final String description;
private final Object value;
private final BundleInfoType type;
/**
* Creates a new bundle information entry.
*
* @param name
* the name of the entry
* @param value
* the value associated with that entry
* @param type
* the type of the value
* @param description
* additional, user-friendly description for that value.
*/
public BundleInfo( String name, Object value, BundleInfoType type, String description )
{
this.name = name;
this.value = value;
this.type = type;
this.description = description;
type.validate( value );
}
/**
* Gets the name of the information entry. The name should be localized
* according the requested locale.
*
* @return the name of that information key.
*/
public String getName()
{
return name;
}
/**
* Gets user-friendly description of the key pair. The description should be
* localized according the requested locale.
*
* @return the description for that information key.
*/
public String getDescription()
{
return description;
}
/**
* Gets the information value.
*
* @return the value.
*/
public Object getValue()
{
return value;
}
/**
* Gets the type of the information value.
*
* @return the information type.
*/
public BundleInfoType getType()
{
return type;
}
}