package FoamXServer.CaseServer;


/**
* FoamXServer/CaseServer/IFoamPropertiesOperations.java .
* Generated by the IDL-to-Java compiler (portable), version "3.1"
* from FoamX.idl
* 22 June 2005 14:41:58 o'clock BST
*/


// ---------------------------------------------------------------------
public interface IFoamPropertiesOperations 
{

  //- Attributes.
  String[] availableModules ();

  //- Root directories to search for cases.
  String[] rootDirectories ();

  //- Unexpanded form of rootDirectories.
  String[] rawRootDirectories ();
  void addRootDirectory (String rawRootDir) throws FoamXServer.FoamXError, FoamXServer.FoamXIOError;
  void deleteRootDirectory (String rawRootDir) throws FoamXServer.FoamXError, FoamXServer.FoamXIOError;

  // Foam types.
  String[] foamTypes ();
  void getFoamType (String foamTypeName, FoamXServer.ITypeDescriptorHolder typeDesc) throws FoamXServer.FoamXError, FoamXServer.FoamXIOError;

  // Geometry types.
  String[] geometryTypes ();
  void getGeometryType (String geometryTypeName, FoamXServer.CaseServer.IGeometryDescriptorHolder geometryDesc) throws FoamXServer.FoamXError, FoamXServer.FoamXIOError;

  // Patch types.
  String[] patchTypes ();
  void getPatchType (String patchTypeName, FoamXServer.CaseServer.IPatchDescriptorHolder patchDesc) throws FoamXServer.FoamXError, FoamXServer.FoamXIOError;
  void findPatchType (String patchTypeName, FoamXServer.CaseServer.IPatchDescriptorHolder patchDesc) throws FoamXServer.FoamXError, FoamXServer.FoamXIOError;

  // Patch field types.
  String[] patchFieldTypes ();
  void getPatchFieldType (String patchFieldTypeName, FoamXServer.ITypeDescriptorHolder patchFieldDesc) throws FoamXServer.FoamXError, FoamXServer.FoamXIOError;
  void findPatchFieldType (String patchFieldTypeName, FoamXServer.ITypeDescriptorHolder patchFieldDesc) throws FoamXServer.FoamXError, FoamXServer.FoamXIOError;

  // FOAM controlDict
  void getFoamControlDict (FoamXServer.IDictionaryEntryHolder controlDict) throws FoamXServer.FoamXError, FoamXServer.FoamXIOError;

  // Application classes.
  FoamXServer.ApplicationDescriptor[] applicationes ();
  void getApplication (String appName, FoamXServer.CaseServer.IApplicationHolder app) throws FoamXServer.FoamXError, FoamXServer.FoamXIOError;
  void addApplication (String appName, FoamXServer.CaseServer.IApplicationHolder app) throws FoamXServer.FoamXError, FoamXServer.FoamXIOError;
  void deleteApplication (String appName) throws FoamXServer.FoamXError, FoamXServer.FoamXIOError;
  void cloneApplication (String appNameSrc, String appNameDest, String appDestPath, FoamXServer.CaseServer.IApplicationHolder app) throws FoamXServer.FoamXError, FoamXServer.FoamXIOError;

  // Foam utilities.
  FoamXServer.ApplicationDescriptor[] utilities ();
  void getUtilityControlDict (String utilityName, String rootDir, String caseName, FoamXServer.IDictionaryEntryHolder controlDict) throws FoamXServer.FoamXError, FoamXServer.FoamXIOError;

  //- Validation.
  void validate () throws FoamXServer.FoamXError, FoamXServer.FoamXIOError, FoamXServer.ValidationError;

  //- Persistence.
  void saveSystemProperties () throws FoamXServer.FoamXError, FoamXServer.FoamXIOError, FoamXServer.ValidationError;
  void saveUserProperties () throws FoamXServer.FoamXError, FoamXServer.FoamXIOError, FoamXServer.ValidationError;
} // interface IFoamPropertiesOperations
