All Downloads are FREE. Search and download functionalities are using the official Maven repository.

nl.tno.bim.nmd.domain.NmdProductCard Maven / Gradle / Ivy

The newest version!
package nl.tno.bim.nmd.domain;
import java.util.Collection;
import java.util.Optional;
import java.util.Set;

import com.fasterxml.jackson.annotation.JsonIgnore;

import nl.tno.bim.nmd.scaling.NmdScaler;

/**
 * Storage container to contain the lifecycle coefficients to do the MPG
 * calculations. A single instance of this interface can return 1 to n materials
 * linked to it. For isntance: a brick wall MaterialsSpecifications instance
 * might have individual MaterialSpecification objects for Brick, Mortar and
 * Cementing. While the materials have individual envronmental factors it is
 * assumed that they are transported and replaced in a single action
 * 
 * @author vijj
 *
 */
public interface NmdProductCard {
		
	String getDescription();

	Set getProfileSets();
	Optional getProfileSetByName(String description);
	
	void addProfileSet(NmdProfileSet spec);
	void addProfileSets(Collection specs);

	NlsfbCode getNlsfbCode();
	
	String getUnit();

	Integer getCategory();

	Integer getLifetime();
	
	Integer getParentProductId();

	Integer getProductId();
	
	@JsonIgnore
	Double getProfileSetsCoeficientSum();

	/**
	 * Returns a scaler if profileset id matches a contained profileset with a scaler 
	 * or if a scaler is cuopled to the product card
	 * @param psId ProfileSet identifier
	 * @return A NMDScaler object for the queries profileset.
	 */
	NmdScaler getScalerForProfileSet(Integer psId);
	
	/** 
	 * performs any checks that would remove the need for product card scaling here.
	 * @return flag to indicate that theproduct needs to be scaled.
	 */
	boolean requiresScaling();
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy