Index: geisa/service/implementation/com/ether/GeisaServiceImpl.java
===================================================================
--- geisa/service/implementation/com/ether/GeisaServiceImpl.java	(revision 533)
+++ geisa/service/implementation/com/ether/GeisaServiceImpl.java	(revision 536)
@@ -2,4 +2,7 @@
 
 import com.ether.dao.IsotopeG03DAO;
+import com.ether.dao.IsotopeG09DAO;
+import com.ether.dao.IsotopeIasiG03DAO;
+import com.ether.dao.IsotopeIasiG09DAO;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -9,4 +12,5 @@
 
 import java.util.List;
+import java.util.Set;
 
 /**
@@ -34,10 +38,87 @@
     @NotNull
     @Transactional(readOnly = true)
-    public List<IsotopeG03> getTransitionsByIsotopeG03Name( final String isotopeName )
+    public List<IsotopeG03> getTransitionsByIsotopeG03Name( final List<String> isotopeNameArray, final Float spectralRangeLower, final Float spectralRangeUpper)
             throws ServiceException
     {
         try
         {
-            return _isotopeG03DAO.getTransitionsByIsotopeG03Name(isotopeName);
+            return _isotopeG03DAO.getTransitionsByIsotopeG03Name( isotopeNameArray, spectralRangeLower, spectralRangeUpper );
+        }
+        catch( PersistenceException e )
+        {
+            throw new ServiceException( ServiceException.ServiceCode.ISOTOPE_NOT_FOUND, e );
+        }
+    }
+
+    @NotNull
+    @Transactional(readOnly = true)
+    public List<Pair> getTransitionsLU( final List<String> isotopeNameArray, final Float spectralRangeLower, final Float spectralRangeUpper )
+            throws ServiceException
+    {
+        try
+        {
+            return _isotopeG03DAO.getTransitionsLU( isotopeNameArray, spectralRangeLower, spectralRangeUpper );
+        }
+        catch( PersistenceException e )
+        {
+            throw new ServiceException( ServiceException.ServiceCode.ISOTOPE_NOT_FOUND, e );
+        }
+    }
+
+    @NotNull
+    @Transactional(readOnly = true)
+    public List<IsotopeG03> getTransitionsByIsotopeG03NameByTransitionLower( final String isotopeName, final Float spectralRangeLower, final Float spectralRangeUpper, final String transitionLower)
+            throws ServiceException
+    {
+        try
+        {
+            return _isotopeG03DAO.getTransitionsByIsotopeG03NameByTransitionLower( isotopeName, spectralRangeLower, spectralRangeUpper, transitionLower );
+        }
+        catch( PersistenceException e )
+        {
+            throw new ServiceException( ServiceException.ServiceCode.ISOTOPE_NOT_FOUND, e );
+        }
+    }
+
+    @NotNull
+    @Transactional(readOnly = true)
+    public Set<String> getTransitionsLower( final Object geisaSelectedDatabase, final List<String> isotopesSelectedNameList, final Float spectralRangeLower, final Float spectralRangeUpper )
+            throws ServiceException
+    {
+        try
+        {
+            if(geisaSelectedDatabase.equals( IsotopeG03.class.toString() ))
+                return _isotopeG03DAO.getTransitionsLower( isotopesSelectedNameList, spectralRangeLower, spectralRangeUpper );
+            else if(geisaSelectedDatabase.equals( IsotopeG09.class.toString() ))
+                return _isotopeG09DAO.getTransitionsLower( isotopesSelectedNameList, spectralRangeLower, spectralRangeUpper );
+            else if(geisaSelectedDatabase.equals( IsotopeIasiG03.class.toString() ))
+                return _isotopeIasiG03DAO.getTransitionsLower( isotopesSelectedNameList, spectralRangeLower, spectralRangeUpper );
+            else
+                return _isotopeIasiG09DAO.getTransitionsLower( isotopesSelectedNameList, spectralRangeLower, spectralRangeUpper );
+
+
+
+        }
+        catch( PersistenceException e )
+        {
+            throw new ServiceException( ServiceException.ServiceCode.ISOTOPE_NOT_FOUND, e );
+        }
+    }
+
+    @NotNull
+    @Transactional(readOnly = true)
+    public Set<String> getTransitionsUpper( final Object geisaSelectedDatabase, final List<String> isotopesSelectedNameList, final Float spectralRangeLower, final Float spectralRangeUpper )
+            throws ServiceException
+    {
+        try
+        {
+            if(geisaSelectedDatabase.equals( IsotopeG03.class.toString() ))
+                return _isotopeG03DAO.getTransitionsUpper( isotopesSelectedNameList, spectralRangeLower, spectralRangeUpper );
+            else if(geisaSelectedDatabase.equals( IsotopeG09.class.toString() ))
+                return _isotopeG09DAO.getTransitionsUpper( isotopesSelectedNameList, spectralRangeLower, spectralRangeUpper );
+            else if(geisaSelectedDatabase.equals( IsotopeIasiG03.class.toString() ))
+                return _isotopeIasiG03DAO.getTransitionsUpper( isotopesSelectedNameList, spectralRangeLower, spectralRangeUpper );
+            else
+                return _isotopeIasiG09DAO.getTransitionsUpper( isotopesSelectedNameList, spectralRangeLower, spectralRangeUpper );
         }
         catch( PersistenceException e )
@@ -53,7 +134,27 @@
     }
 
+    @Required
+    public void setIsotopeG09DAO( final IsotopeG09DAO isotopeG09DAO )
+    {
+        _isotopeG09DAO = isotopeG09DAO;
+    }
+
+    @Required
+    public void setIsotopeIasiG03DAO( final IsotopeIasiG03DAO isotopeIasiG03DAO )
+    {
+        _isotopeIasiG03DAO = isotopeIasiG03DAO;
+    }
+
+    @Required
+    public void setIsotopeIasiG09DAO( final IsotopeIasiG09DAO isotopeIasiG09DAO )
+    {
+        _isotopeIasiG09DAO = isotopeIasiG09DAO;
+    }
+
     private static final Log LOGGER = LogFactory.getLog( GeisaServiceImpl.class );
 
     private IsotopeG03DAO _isotopeG03DAO;
-
+    private IsotopeG09DAO _isotopeG09DAO;
+    private IsotopeIasiG03DAO _isotopeIasiG03DAO;
+    private IsotopeIasiG09DAO _isotopeIasiG09DAO;
 }
Index: geisa/service/interface/com/ether/GeisaService.java
===================================================================
--- geisa/service/interface/com/ether/GeisaService.java	(revision 533)
+++ geisa/service/interface/com/ether/GeisaService.java	(revision 536)
@@ -6,4 +6,5 @@
 
 import java.util.List;
+import java.util.Set;
 
 /**
@@ -14,9 +15,22 @@
         extends Service
 {
-	@NotNull
+    @NotNull
     List<IsotopeG03> getAllIsotopeG03() throws ServiceException;
 
     @NotNull
-    List<IsotopeG03> getTransitionsByIsotopeG03Name( final String isotopeName ) throws ServiceException;
+    List<IsotopeG03> getTransitionsByIsotopeG03Name( final List<String> isotopeNameArray, final Float spectralRangeLower, final Float spectralRangeUpper ) throws ServiceException;
 
+    @NotNull
+    List<Pair> getTransitionsLU( final List<String> isotopeNameArray, final Float spectralRangeLower, final Float spectralRangeUpper ) throws ServiceException;
+
+    @NotNull
+    List<IsotopeG03> getTransitionsByIsotopeG03NameByTransitionLower( final String isotopeName, final Float spectralRangeLower, final Float spectralRangeUpper, final String transitionLower ) throws ServiceException;
+
+    @NotNull
+    Set<String> getTransitionsLower( final Object geisaSelectedDatabase, final List<String> isotopesSelectedNameList, final Float spectralRangeLower, final Float spectralRangeUpper )
+            throws ServiceException;
+
+    @NotNull
+    Set<String> getTransitionsUpper( final Object geisaSelectedDatabase, final List<String> isotopesSelectedNameList,final  Float spectralRangeLower,final Float spectralRangeUpper )
+            throws ServiceException;
 }
