1 /* 2 * This file is a part of CAST project. 3 * (c) Copyright 2007, AGH University of Science & Technology 4 * https://caribou.iisg.agh.edu.pl/trac/cast 5 * 6 * Licensed under the Eclipse Public License, Version 1.0 (the "License"). 7 * You may not use this file except in compliance with the License. 8 * You may obtain a copy of the License at 9 * http://www.eclipse.org/legal/epl-v10.html 10 */ 11 /* 12 * File: Loader.java 13 * Created: 2007-09-25 14 * Author: apohllo 15 * $Id: Mappable.java 2232 2009-01-04 22:59:53Z apohllo $ 16 */ 17 18 package pl.edu.agh.cast.model.mapper; 19 20 /** 21 * The mappable interface should be implemented by all classes mapped 22 * to the base model. 23 * 24 * @author AGH CAST Team 25 */ 26 public interface Mappable { 27 /** 28 * The base model id of the object. 29 * @return Base model id. 30 */ 31 public long getMid(); 32 33 /** 34 * Base model id setter. 35 * @param id to set. 36 */ 37 public void setMid(long id); 38 39 /** 40 * Domain specific id of the object. 41 * @return The id of the object. 42 */ 43 public String getId(); 44 45 /** 46 * Domain specific id setter. 47 * @param id The id to set. 48 */ 49 public void setId(String id); 50 51 /** 52 * Value of the attribute with name 'name' mapped to the base model. 53 * @param name The name of the attribute 54 * @return The value of the attribute 55 */ 56 public Object getAttribute(String name); 57 58 /** 59 * Array of names of attributes mapped to the base model. 60 * @return array of names. 61 */ 62 public String[] getAttributeNames(); 63 64 /** 65 * Returns the type of the attribute with given name. 66 * @param name The name of the attribute. 67 * @return The type (class) of the attribute. 68 */ 69 public Class getAttributeType(String name); 70 71 /** 72 * Sets the value of the attribute with given name. 73 * @param name The name of the attribute. 74 * @param value The value of the attribute. 75 */ 76 public void setAttribute(String name, Object value); 77 78 /** 79 * The mapped type of the object. 80 * @return The type. 81 */ 82 public String getType(); 83 84 /** 85 * Clones the mappable. 86 * @return Copy of the object. 87 */ 88 public Mappable clone(); 89 }