/*
 * Copyright (c) OSGi Alliance (2013). All Rights Reserved.
 * 
 * Licensed 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.osgi.service.enocean.sets;

import org.osgi.service.enocean.EnOceanMessage;


/**
 * This interface represents an EnOcean Message Set.
 * {@link EnOceanMessageSet} is registered as an OSGi Service.
 * Provides method to retrieve the {@link EnOceanMessage} objects
 * it documents.
 * 
 * @version 1.0
 * @author Victor Perron <victor.perron@orange.fr>
 */
public interface EnOceanMessageSet {
	
	public final static String	VERSION				= "message.set.version";

	public final static String	PROVIDER_ID			= "message.set.provider_id";

	/**
	 * Retrieves a {@link Class} object according to its identifiers.
	 * You can then use this class reference to build new, dedicated
	 * {@link EnOceanMessage} objects.
	 * See EnOcean Equipment Profile Specification for more details.
	 * 
	 * @param rorg the radio telegram type of the message.
	 * @param func The func subtype of this message.
	 * @param type The type supselector.
	 * @param extra Some extra information; some {@link EnOceanMessage} 
	 * objects need an additional specifier.
	 * 
	 * If the specified profile does not need 'extra' info, this parameter
	 * will be ignored.
	 * 
	 * @return The {@link Class} object looked for, or null.
	 */
	public Class getMessage(int rorg, int func, int type, int extra);

}

/*
 * Copyright (c) OSGi Alliance (2013). All Rights Reserved.
 * 
 * Licensed 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.osgi.service.enocean.sets;

import org.osgi.service.enocean.EnOceanMessage;


/**
 * This interface represents an EnOcean Message Set.
 * {@link EnOceanMessageSet} is registered as an OSGi Service.
 * Provides method to retrieve the {@link EnOceanMessage} objects
 * it documents.
 * 
 * @version 1.0
 * @author Victor Perron <victor.perron@orange.fr>
 */
public interface EnOceanMessageSet {
	
	public final static String	VERSION				= "message.set.version";

	public final static String	PROVIDER_ID			= "message.set.provider_id";

	/**
	 * Retrieves a {@link EnOceanMessage} object according to its identifiers.
	 * See EnOcean Equipment Profile Specification for more details.
	 * 
	 * @param rorg the radio telegram type of the message.
	 * @param func The func subtype of this message.
	 * @param type The type supselector.
	 * @param extra Some extra information; some {@link EnOceanMessage} 
	 * objects need an additional specifier.
	 * @return The {@link EnOceanMessage} object looked for, or null.
	 */
	public EnOceanMessage getMessage(short rorg, short func, short type, short extra);

}

Revert "EnOceanMessageSet return Class instead of instance"