001 /*
002 * BeanPropertyKeyProvider.java
003 *
004 * Created on February 4, 2007, 12:53 PM
005 */
006
007 package net.sf.tacos.model.impl;
008
009 import java.io.Serializable;
010 import net.sf.tacos.model.IKeyProvider;
011
012 import org.apache.commons.beanutils.BeanUtils;
013
014 /**
015 * Key provider that uses a property of the object as a key.
016 *
017 * @author andyhot
018 */
019 public class BeanPropertyKeyProvider implements IKeyProvider {
020
021 private String property;
022
023 public BeanPropertyKeyProvider(String property) {
024 this.property = property;
025 }
026
027 public Serializable getKey(Object obj) {
028 try {
029 return BeanUtils.getProperty(obj, property);
030 } catch (Exception e) {
031 throw new RuntimeException("Error getting property", e);
032 }
033 }
034
035 }