001 /* EVolve - an Extensible Software Visualization Framework 002 * Copyright (C) 2001-2002 Qin Wang 003 * 004 * This library is free software; you can redistribute it and/or 005 * modify it under the terms of the GNU Library General Public 006 * License as published by the Free Software Foundation; either 007 * version 2 of the License, or (at your option) any later version. 008 * 009 * This library is distributed in the hope that it will be useful, 010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 012 * Library General Public License for more details. 013 * 014 * You should have received a copy of the GNU Library General Public 015 * License along with this library; if not, write to the 016 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, 017 * Boston, MA 02111-1307, USA. 018 */ 019 020 /* 021 * EVolve is distributed at http://www.sable.mcgill.ca/EVolve/ 022 */ 023 024 package EVolve.data; 025 026 import EVolve.exceptions.DataProcessingException; 027 import EVolve.exceptions.EVolveException; 028 029 /** 030 * EVolve data source. 031 */ 032 public interface DataSource { 033 /** 034 * Initializes the data source. 035 */ 036 public void init() throws EVolveException; 037 038 /** 039 * Starts building the element definitions. 040 */ 041 public void startBuildDefinition() throws DataProcessingException; 042 043 /** 044 * Gets the next element definition. 045 * 046 * @return next element definition, null if all the definitions are sent. 047 */ 048 public ElementDefinition getNextDefinition() throws DataProcessingException; 049 050 /** 051 * Starts building the entities. 052 */ 053 public void startBuildEntity() throws DataProcessingException; 054 055 /** 056 * Gets the next entity. 057 * 058 * @return next entity, null if all the entities are sent. 059 */ 060 public Entity getNextEntity() throws DataProcessingException; 061 062 /** 063 * Starts building the events. 064 */ 065 public void startBuildEvent() throws DataProcessingException; 066 067 /** 068 * Gets the next event. 069 * 070 * @return next event, null if all the events are sent. 071 */ 072 public Event getNextEvent() throws DataProcessingException; 073 074 /** 075 * Gets the name of the datasource. 076 * 077 * @return data sourse name 078 */ 079 public String getName(); 080 081 /** 082 * Gets the name of the data trace file. 083 * 084 * @return trace file name or null 085 */ 086 public String getFileName(); 087 088 /** 089 * Gets total number of events in the data trace 090 * 091 * @return a long type number containing total number of events 092 */ 093 public long getTotalNumberOfEvents(); 094 095 /** 096 * Gets number of events corresponding event definition name 097 * 098 * @return event number 099 */ 100 public long getNumberOfEvents(String definitionName); 101 102 }