[Ngms-svn] SVN-Commit: [41] [NMTree] add comments, add necessary methods in NMTree.

Back to archive index

svnno****@sourc***** svnno****@sourc*****
2009年 11月 19日 (木) 20:58:03 JST


Revision: 41
          http://sourceforge.jp/projects/ngms/svn/view?view=rev&revision=41
Author:   osiire
Date:     2009-11-19 20:58:03 +0900 (Thu, 19 Nov 2009)

Log Message:
-----------
[NMTree] add comments, add necessary methods in NMTree.

Modified Paths:
--------------
    trunk/source/NMTree/src/info/ngms/nmtree/AbstractDescriptionElement.scala
    trunk/source/NMTree/src/info/ngms/nmtree/NMDescription.scala
    trunk/source/NMTree/src/info/ngms/nmtree/NMElementAttribute.scala
    trunk/source/NMTree/src/info/ngms/nmtree/NMElementPermission.scala
    trunk/source/NMTree/src/info/ngms/nmtree/NMFileSystemTree.scala
    trunk/source/NMTree/src/info/ngms/nmtree/NMPath.scala
    trunk/source/NMTree/src/info/ngms/nmtree/NMTree.scala
    trunk/source/NMTree/src/info/ngms/nmtree/NMTreeElements.scala
    trunk/source/NMTree/src/info/ngms/nmtree/NMTreeOperations.scala

Added Paths:
-----------
    trunk/source/NMTree/src/info/ngms/nmtree/NMAccessPermission.scala
    trunk/source/NMTree/src/info/ngms/nmtree/NMElementVersionStatus.scala
    trunk/source/NMTree/src/info/ngms/nmtree/NMUser.scala
    trunk/source/NMTree/src/info/ngms/nmtree/NMUserGroup.scala

Modified: trunk/source/NMTree/src/info/ngms/nmtree/AbstractDescriptionElement.scala
===================================================================
--- trunk/source/NMTree/src/info/ngms/nmtree/AbstractDescriptionElement.scala	2009-11-18 06:57:16 UTC (rev 40)
+++ trunk/source/NMTree/src/info/ngms/nmtree/AbstractDescriptionElement.scala	2009-11-19 11:58:03 UTC (rev 41)
@@ -11,6 +11,10 @@
     val header : LinkedHashMap[String, NMDescription]
     val body : List[String]
 
+    def descriptions : List[NMDescription] = {
+        header.values.toList
+    }
+
     def find(tag : String) : Option[NMDescription] = {
         val nmlz_tag = DescriptionElement.normalizeTag(tag)
         try {
@@ -40,10 +44,16 @@
         }
     }
 
-    def update(tag : String, value : String) : Unit = {
+    def update(tag : String, value : String, comment : String ) : Unit = {
         val desc = header(DescriptionElement.normalizeTag(tag))
         desc.value = value
+        desc.comment = comment
      }
+
+    def set( dscr : NMDescription ) : Unit = { }
+
+    def update( f : List[NMDescription] => List[NMDescription] ) : Unit = { }
+
 }
 
 object DescriptionElement {

Added: trunk/source/NMTree/src/info/ngms/nmtree/NMAccessPermission.scala
===================================================================
--- trunk/source/NMTree/src/info/ngms/nmtree/NMAccessPermission.scala	                        (rev 0)
+++ trunk/source/NMTree/src/info/ngms/nmtree/NMAccessPermission.scala	2009-11-19 11:58:03 UTC (rev 41)
@@ -0,0 +1,39 @@
+/*
+ *  Next Generation Management System Project
+ *  Copyright(c) 2009, NGMS Project Team All Rights Reserved.
+ */
+package info.ngms.nmtree
+
+/**
+ * アクセス許可を表現するクラス
+ *
+ * @version $Id$
+ * @author ogasa****@itpl*****
+ */
+trait NMAccessPermission {
+
+    /**
+     * 生成許可権限。これがtrueの場合は、エレメントの作成が可能であることを表現している。
+     */
+    val create : Boolean
+
+    /**
+     * 書き込み許可権限。これがtrueの場合は、エレメントへの書き込みが可能であることを表現している。
+     */
+    val write : Boolean
+
+    /**
+     * 読み込み許可権限。これがtrueの場合は、エレメントの内容を読み込み可能であることを表現している。
+     */
+    val read : Boolean
+
+    /**
+     * 削除許可権限。これがtrueの場合は、エレメントの削除が可能であることを表現している。
+     */
+     val delete : Boolean
+
+     /**
+      * アクセス許可変更権限。これがtrueの場合は、エレメントのアクセス許可を変更できることを表現している。
+      */
+     val changePermission : Boolean
+}


Property changes on: trunk/source/NMTree/src/info/ngms/nmtree/NMAccessPermission.scala
___________________________________________________________________
Added: svn:keywords
   + Id Revision

Modified: trunk/source/NMTree/src/info/ngms/nmtree/NMDescription.scala
===================================================================
--- trunk/source/NMTree/src/info/ngms/nmtree/NMDescription.scala	2009-11-18 06:57:16 UTC (rev 40)
+++ trunk/source/NMTree/src/info/ngms/nmtree/NMDescription.scala	2009-11-19 11:58:03 UTC (rev 41)
@@ -4,10 +4,31 @@
  */
 package info.ngms.nmtree
 
-object NMDescription {
-    def commentDelimiter = "#"
+/**
+ * タグとそれに関連付いた値を保持する構造。コメント付き。
+ * @version $Id$
+ * @auther ogasa****@itpl*****
+ */
+ class NMDescription ( val tag : String, var value : String, var comment : String)
 
-    def make(tag : String, value : String) = {
+ /**
+ * タグとそれに関連付いた値を保持する構造。コメント付き。
+ * @version $Id$
+ * @auther ogasa****@itpl*****
+ */
+ object NMDescription {
+    /**
+     * コメントの直前につけるマークの定義
+     */
+     def commentDelimiter = "#"
+
+     /**
+      * 値にコメントが結合されている場合は、それを分離してNMDescriptionのインスタンスを作成する関数。
+      * @param tag タグ。
+      * @param コメントが含まれている値
+      * @return NMDescriptionのインスタンス
+      */
+     def make(tag : String, value : String) : NMDescription = {
         val parts = value split commentDelimiter
         if (parts.length == 1)
             new NMDescription(tag, parts(0).trim, "")
@@ -16,6 +37,3 @@
     }
 }
 
-class NMDescription ( val tag : String, var value : String, var comment : String) {
-    import NMDescription.commentDelimiter
-}

Modified: trunk/source/NMTree/src/info/ngms/nmtree/NMElementAttribute.scala
===================================================================
--- trunk/source/NMTree/src/info/ngms/nmtree/NMElementAttribute.scala	2009-11-18 06:57:16 UTC (rev 40)
+++ trunk/source/NMTree/src/info/ngms/nmtree/NMElementAttribute.scala	2009-11-19 11:58:03 UTC (rev 41)
@@ -20,9 +20,15 @@
     val size : Long
 
     /**
-     * パスが示すエレメントが最後に更新された日時を返す
+     * パスが示すエレメントが最後に更新された日時を返す。
      * @return パスが示すエレメントが最後に更新された日時。
      */
     val lastUpdateDate : Date
 
+    /**
+     * パスが示すエレメントのバージョン管理ステータスを返す。
+     * @return ぱすが示すエレメントのバージョン管理ステータス。
+     */
+    val versionStatus : NMElementVersionStatus
+
 }

Modified: trunk/source/NMTree/src/info/ngms/nmtree/NMElementPermission.scala
===================================================================
--- trunk/source/NMTree/src/info/ngms/nmtree/NMElementPermission.scala	2009-11-18 06:57:16 UTC (rev 40)
+++ trunk/source/NMTree/src/info/ngms/nmtree/NMElementPermission.scala	2009-11-19 11:58:03 UTC (rev 41)
@@ -5,10 +5,11 @@
 package info.ngms.nmtree
 
 /**
- * NGTreeのエレメントが持つアクセス許可を表現する抽象クラス
+ * NMTreeのエレメントが持つアクセス許可を表現するクラス
  *
  * @version $Id$
  * @author ogasa****@itpl*****
  */
-abstract class NMElementPermission {
+trait NMElementPermission {
+    val permissions : Map[NMUserGroup, NMAccessPermission]
 }

Added: trunk/source/NMTree/src/info/ngms/nmtree/NMElementVersionStatus.scala
===================================================================
--- trunk/source/NMTree/src/info/ngms/nmtree/NMElementVersionStatus.scala	                        (rev 0)
+++ trunk/source/NMTree/src/info/ngms/nmtree/NMElementVersionStatus.scala	2009-11-19 11:58:03 UTC (rev 41)
@@ -0,0 +1,35 @@
+/*
+ *  Next Generation Management System Project
+ *  Copyright(c) 2009, NGMS Project Team All Rights Reserved.
+ */
+package info.ngms.nmtree
+
+/**
+ * NMTreeエレメントが持つバージョン管理ステータスの抽象クラス
+ */
+abstract class NMElementVersionStatus
+
+/**
+ * バージョン管理ステータスの一つ。他で定義された状態のいずれでもない状態を意味する。
+ */
+case object Neutral extends NMElementVersionStatus
+
+/**
+ * バージョン管理ステータスの一つ。バージョン管理元と不整合が発生している状態を意味する。
+ */
+case object Conflict extends NMElementVersionStatus
+
+/**
+ * バージョン管理ステータスの一つ。バージョン管理元と比べて変更が加えられている状態を意味する。
+ */
+case object Modified extends NMElementVersionStatus
+
+/**
+ * バージョン管理ステータスの一つ。バージョン管理元には加えられていないエレメントであることを示す。
+ */
+case object Added extends NMElementVersionStatus
+
+/**
+ * バージョン管理ステータスの一つ。バージョン管理元には存在するがローカルには削除されたエレメントであることを示す。
+ */
+case object Deleted extends NMElementVersionStatus


Property changes on: trunk/source/NMTree/src/info/ngms/nmtree/NMElementVersionStatus.scala
___________________________________________________________________
Added: svn:keywords
   + Id Revision

Modified: trunk/source/NMTree/src/info/ngms/nmtree/NMFileSystemTree.scala
===================================================================
--- trunk/source/NMTree/src/info/ngms/nmtree/NMFileSystemTree.scala	2009-11-18 06:57:16 UTC (rev 40)
+++ trunk/source/NMTree/src/info/ngms/nmtree/NMFileSystemTree.scala	2009-11-19 11:58:03 UTC (rev 41)
@@ -46,7 +46,6 @@
             val id : Long = 0L
             val header = h
             val body = b
-            def localCommit() : Unit = { }
         }
     }
 
@@ -55,7 +54,9 @@
       new {
         val id : Long = 0L
         val lines : Array[Array[String]] = Array(Array())
-        def localCommit() : Unit = {}
+        def foldl[T] (init : T) (f : (T, Array[String]) => T) : T = {
+          init
+        }
       }
     }
 
@@ -94,18 +95,39 @@
             new NMElementAttribute {
                 val size = 0L
                 val lastUpdateDate = new Date( file.lastModified() )
+                val versionStatus = Neutral
             }
         }
+
+        def permission( path : NMPath ) : NMElementPermission = {
+            // 未実装
+            new NMElementPermission { val permissions = Map[NMUserGroup, NMAccessPermission]() }
+        }
+
+        def versionStatus( path : NMPath ) : NMElementVersionStatus = {
+            Neutral
+        }
+
     }
 
     object TreeOperations {
         def move( src : NMPath, dst : NMPath ) : Unit = { }
 
-        def copy( src : NMPath, dst : NMPath, overwrite : Boolean ) : Unit = { }
+        def copy( src : NMPath, dst : NMPath, overwrite : Boolean, recursive : Boolean ) : Unit = { }
 
         def delete( path : NMPath, recursive : Boolean ) : Unit = { }
 
         def symLink( src : NMPath, dst : NMPath ) : Unit = { }
+
+        def changePermission( src : NMPath, permission : NMElementPermission ) : Unit = { }
+
+        def update( src : NMPath, recursive : Boolean ) : Unit = { }
+
+        def commit( src : NMPath, recursive : Boolean ) : Unit = { }
+
+        def revert( src : NMPath ) : Unit = { }
+
+        def resolve( src : NMPath ) : Unit = { }
     }
 
     def pathOp : NMTree.TPathOperations = PathOperations

Modified: trunk/source/NMTree/src/info/ngms/nmtree/NMPath.scala
===================================================================
--- trunk/source/NMTree/src/info/ngms/nmtree/NMPath.scala	2009-11-18 06:57:16 UTC (rev 40)
+++ trunk/source/NMTree/src/info/ngms/nmtree/NMPath.scala	2009-11-19 11:58:03 UTC (rev 41)
@@ -4,6 +4,11 @@
  */
 package info.ngms.nmtree
 
+/**
+ * パスを表現し、その操作を内包するクラス。
+ * @version $Id$
+ * @auther ogasa****@itpl*****
+ */
 object NMPath {
 
     val separator : String = "/"
@@ -34,6 +39,11 @@
     }
 }
 
+/**
+ * パスを表現し、その操作を内包するクラス。
+ * @version $Id$
+ * @auther ogasa****@itpl*****
+ */
 class NMPath ( path : String ) {
 
     val canonical = NMPath.canonical(path)
@@ -108,6 +118,7 @@
 
 
     def kind : NMTreeElementKind = {
+        //未実装
         Node
     }
 

Modified: trunk/source/NMTree/src/info/ngms/nmtree/NMTree.scala
===================================================================
--- trunk/source/NMTree/src/info/ngms/nmtree/NMTree.scala	2009-11-18 06:57:16 UTC (rev 40)
+++ trunk/source/NMTree/src/info/ngms/nmtree/NMTree.scala	2009-11-19 11:58:03 UTC (rev 41)
@@ -8,7 +8,6 @@
 import java.io.InputStream
 import java.io.OutputStream
 
-
 /**
  * NGMS用木構造を表現するクラス
  *
@@ -17,6 +16,9 @@
  */
 object NMTree {
 
+    /**
+     * 木構造のパス操作の実装が必ず備えているべき関数一覧
+     */
     type TPathOperations = {
 
         /*
@@ -44,8 +46,22 @@
          */
         def attribute( path : NMPath ) : NMElementAttribute
 
+        /*
+         * パスが示すエレメントが持つアクセス許可を返す
+         * @return パスが示すエレメントが持つアクセス許可。
+         */
+        def permission( path : NMPath ) : NMElementPermission
+
+        /*
+         * パスが示すエレメントが持つバージョン管理ステータスを返す。
+         * @return パスが示すエレメントが持つバージョン管理ステータス。
+         */
+        def versionStatus( path : NMPath ) : NMElementVersionStatus
     }
 
+    /**
+     * 木構造の操作の実装が必ず備えているべき関数一覧
+     */
     type TTreeOperations = {
         /*
          * パスの移動を定義する関数。
@@ -55,6 +71,7 @@
          * @throws SourceNotFoundException
          * @throws DestinationNotFoundException
          * @throws DestinationAlreadyExistsException
+         * @throws LowLevelException
          */
         def move( src : NMPath, dst : NMPath ) : Unit
 
@@ -63,12 +80,14 @@
           * @param src コピー元のパス
           * @param dst コピー先のパス。コピー先のパスが作成されたコピーの親になる。
           * @param overwrite trueの場合、コピー先にすでに同じパスが存在しても上書きを行う。
+          * @param recursive trueが指定された場合は、指定されたパスの子供を再帰的に辿り、全ての子供をコピーする。
           * @throws AppPermissionException
           * @throws SourceNotFoundException
           * @throws DestinationNotFoundException
           * @throws DestinationAlreadyExistsException
+          * @throws LowLevelException
           */
-         def copy( src : NMPath, dst : NMPath, overwrite : Boolean ) : Unit
+         def copy( src : NMPath, dst : NMPath, overwrite : Boolean, recursive : Boolean ) : Unit
 
          /*
           * パスの削除を定義する関数。
@@ -76,7 +95,8 @@
           * @param recursive trueが指定された場合は、指定されたパスの子供を再帰的に辿り、全ての子供を削除する。
           * @throws AppPermissionException
           * @throws DestinationNotFoundException
-          */
+          * @throws LowLevelException
+         */
          def delete( path : NMPath, recursive : Boolean ) : Unit
 
          /*
@@ -86,10 +106,62 @@
           * @throws AppPermissionException
           * @throws DestinationNotFoundException
           * @throws DestinationAlreadyExistsException
+          * @throws LowLevelException
           */
          def symLink( src : NMPath, dst : NMPath ) : Unit
+
+         /*
+          * エレメントのアクセス許可を定義する関数。
+          * @param src アクセス許可を変更したいパス。
+          * @param dst リンクした結果新しく作成されるパス。
+          * @throws AppPermissionException
+          * @throws SourceNotFoundException
+          * @throws LowLevelException
+          */
+         def changePermission( src : NMPath, permission : NMElementPermission ) : Unit
+
+         /*
+          * バージョン管理元から最新のデータをローカルへ変更を反映する関数。
+          * @param src 変更を反映したいパス
+          * @param recursive 指定されたパスの子エレメントを再帰的にバージョン管理元へ反映したい時にtrueを設定する。
+          * @throws AppPermissionException
+          * @throws SourceNotFoundException
+          * @throws LowLevelException
+          */
+         def update( src : NMPath, recursive : Boolean ) : Unit
+
+         /*
+          * バージョン管理元へローカルな変更を反映する関数。
+          * @param src 変更を反映したいパス
+          * @param recursive 指定されたパスの子エレメントを再帰的にバージョン管理元へ反映したい時にtrueを設定する。
+          * @throws AppPermissionException
+          * @throws SourceNotFoundException
+          * @throws CannotCommitOldVersionException
+          * @throws CannotCommitConflictException
+          * @throws LowLevelException
+          */
+         def commit( src : NMPath, recursive : Boolean ) : Unit
+
+         /*
+          * ローカルな変更を破棄して、指定されたエレメントとバージョン管理元に合わせる関数。
+          * @throws AppPermissionException
+          * @throws SourceNotFoundException
+          * @throws LowLevelException
+          */
+         def revert( src : NMPath ) : Unit
+
+         /*
+          * ローカルなエレメントの衝突状態が解消されたことを知らせる関数。
+          * @throws AppPermissionException
+          * @throws SourceNotFoundException
+          * @throws LowLevelException
+          */
+         def resolve( src : NMPath ) : Unit
     }
 
+    /**
+     * Streamエレメントの実装が必ず備えているべき変数、関数一覧
+     */
     type TStreamElement = {
         /*
          * グローバルに一意な番号。同一ファイルには同一のIDが割り振られ、変化しない。
@@ -108,6 +180,9 @@
         val output : OutputStream
     }
 
+    /**
+     * Descriptionエレメントの実装が必ず備えているべき変数、関数一覧
+     */
     type TDescriptionElement = {
         /*
          * グローバルに一意な番号。同一ファイルには同一のIDが割り振られ、変化しない。
@@ -115,23 +190,77 @@
          */
         val id : Long
 
-        val header : scala.collection.mutable.LinkedHashMap[String, NMDescription]
+        /*
+         * Descriptionエレメントに含まれる全NMDescription。
+         * 出現順番は実装依存。
+         */
+        def descriptions : List[NMDescription]
+
+        /*
+         * 指定されたタグに対応する値を返す。
+         * @param tag 欲しいと思う値のタグ。
+         * @return 指定されたタグが存在すればそのタグに対応する値、無ければNone。
+         */
         def findVal(tag : String) : Option[String]
+
+        /*
+         * 指定されたタグに対応する値を用いて指定された関数を呼び出す。
+         * @param tag 欲しいと思う値のタグ
+         * @param default 指定されたタグが存在しない場合に関数へ渡される値。
+         * @param f 実行される関数。
+         * @return 関数fの戻り値。
+         */
         def findWith[A](tag : String) (default : A) (f : NMDescription => A) : A
-        def update(tag : String, value : String) : Unit
-        def localCommit() : Unit
+
+        /*
+         * 指定されたタグと値をエレメントに書き込む。
+         * @param tag キーと成るタグ。
+         * @param value タグに対応する値。
+         * @param comment コメント。
+         */
+        def update(tag : String, value : String, comment : String) : Unit
+
+        /*
+         * 指定されたDescriptionをエレメントに書き込む。
+         * @param dscr Description情報のインスタンス
+         */
+        def set( dscr : NMDescription ) : Unit
+
+        /*
+         * 指定された関数を実行後、変更された内容をエレメントへ書き込む。同時に複数のDescriptionを更新する場合に用いる。
+         * @param f 更新をするための関数。引数には現在のDescription情報が渡され、戻り値のDescription情報がエレメントへ反映される。
+         */
+        def update( f : List[NMDescription] => List[NMDescription] ) : Unit
     }
 
+    /**
+     * Tableエレメントの実装が必ず備えているべき変数、関数一覧
+     */
     type TTableElement = {
         /*
          * グローバルに一意な番号。同一ファイルには同一のIDが割り振られ、変化しない。
          * このIDはパスに依存しない。
          */
         val id : Long
+
+        /*
+         * Tableエレメントに含まれるデータをArray[Arrayy[String]]として表現したもの。
+         * 実装はlines変数をlazyにしなければならない。
+         */
         val lines : Array[Array[String]]
-        def localCommit() : Unit
+
+        /*
+         * Tableエレメントのデータを各行のArrayと見たときの左側畳み込み関数。
+         * @param init 畳み込みの初期値。
+         * @param f 畳み込み関数。引数に渡されるArray[String]は一行を列に分けたときの配列。
+         * @return 畳み込まれた値。
+         */
+        def foldl[T] (init : T) (f : (T, Array[String]) => T) : T
     }
 
+    /**
+     * 木構造の実装が必ず備えているべき変数、関数一覧
+     */
     type NMTreeImplimentation = {
         def createStream( path : NMPath ) : TStreamElement
         def createDescription( path : NMPath ) : TDescriptionElement
@@ -140,7 +269,7 @@
         def treeOp : TTreeOperations
     }
 
-    object ImplMap {
+    private[nmtree] object ImplMap {
         val impls = scala.collection.mutable.Map.empty[String, NMTreeImplimentation]
         def find( path : String ) : Option[NMTreeImplimentation] = {
             // 未実装
@@ -194,7 +323,7 @@
     case class DepthFirst( order : WalkOrder ) extends WalkDirection
     case object BreadthFirst extends WalkDirection
 
-    def traversal[T]( root : NMPath, dir : WalkDirection) (f : Tuple2[T, NMPath] => T) ( init : T ) : T = {
+    def traversal[T]( root : NMPath, dir : WalkDirection) (f : (T, NMPath) => T) ( init : T ) : T = {
         // 未実装
         init
     }

Modified: trunk/source/NMTree/src/info/ngms/nmtree/NMTreeElements.scala
===================================================================
--- trunk/source/NMTree/src/info/ngms/nmtree/NMTreeElements.scala	2009-11-18 06:57:16 UTC (rev 40)
+++ trunk/source/NMTree/src/info/ngms/nmtree/NMTreeElements.scala	2009-11-19 11:58:03 UTC (rev 41)
@@ -1,3 +1,7 @@
+/*
+ *  Next Generation Management System Project
+ *  Copyright(c) 2009, NGMS Project Team All Rights Reserved.
+ */
 package info.ngms.nmtree
 
 abstract class NMTreeElementKind

Modified: trunk/source/NMTree/src/info/ngms/nmtree/NMTreeOperations.scala
===================================================================
--- trunk/source/NMTree/src/info/ngms/nmtree/NMTreeOperations.scala	2009-11-18 06:57:16 UTC (rev 40)
+++ trunk/source/NMTree/src/info/ngms/nmtree/NMTreeOperations.scala	2009-11-19 11:58:03 UTC (rev 41)
@@ -34,6 +34,21 @@
   */
  case class DestinationAlreadyExistsException( dst : NMPath ) extends NMTreeOperationException
 
+ /**
+  * 指定された操作元のバージョンがバージョン管理元より古い場合に発生する例外。
+  */
+ case class CannotCommitOldVersionException( src : NMPath ) extends NMTreeOperationException
+
+ /**
+  * 指定された操作元がバージョン管理元と衝突している場合に発生する例外。
+  */
+ case class CannotCommitConflictException( src : NMPath ) extends NMTreeOperationException
+
+ /**
+  * 下位レベルのエラーにより操作が実行できないことを意味する例外。
+  */
+ case class LowLevelException( msg : String ) extends NMTreeOperationException
+
 /**
   * 木構造の操作を定義する抽象クラス。
  */
@@ -50,14 +65,17 @@
  * パスのコピーを定義するケースクラス。
  * @param src コピー元のパス
  * @param dst コピー先のパス。コピー先のパスが作成されたコピーの親になる。
+ * @param overwrite trueの場合、コピー先にすでに同じパスが存在しても上書きを行う。
+ * @param recursive trueが指定された場合は、指定されたパスの子供を再帰的に辿り、全ての子供をコピーする。
  */
-case class Copy( src : NMPath, dst : NMPath ) extends NMTreeOperations
+case class Copy( src : NMPath, dst : NMPath, overwrite : Boolean, recursive : Boolean ) extends NMTreeOperations
 
 /**
  * パスの削除を定義するケースクラス。
  * @param path 指定されたパスが削除される。
+ * @param recursive trueが指定された場合は、指定されたパスの子供を再帰的に辿り、全ての子供を削除する。
  */
-case class Delete( path : NMPath ) extends NMTreeOperations
+case class Delete( path : NMPath, recursive : Boolean ) extends NMTreeOperations
 
 /**
  * シンボリックリンクを定義するケースクラス。
@@ -65,3 +83,36 @@
  * @param dst リンクした結果新しく作成されるパス。
  */
 case class SymLink( src : NMPath, dst : NMPath ) extends NMTreeOperations
+
+/**
+ * エレメントへのアクセス許可の変更を定義するケースクラス
+ * @param src 変更を反映したいパス。
+ * @param permission 変更後のアクセス許可
+ */
+case class ChangePermission( src : NMPath, permission : NMElementPermission ) extends NMTreeOperations
+
+/**
+ * バージョン管理元から最新のデータをローカルへ反映させる操作を定義するケースクラス
+ * @param src 変更を反映したいパス
+ * @param recursive 指定されたパスの子エレメントを再帰的にバージョン管理元へ反映したい時にtrueを設定する。
+ */
+case class Update( src : NMPath ) extends NMTreeOperations
+
+/**
+ * バージョン管理元へ変更を通知する操作を定義するケースクラス
+ * @param src 変更を反映したいパス
+ * @param recursive 指定されたパスの子エレメントを再帰的にバージョン管理元へ反映したい時にtrueを設定する。
+ */
+ case class Commit( src : NMPath, recursive : Boolean ) extends NMTreeOperations
+
+/**
+ * 指定されたパスのローカルな変更を破棄し、バージョン管理元に合わせる操作を定義するケースクラス。
+ * @param src ローカルな変更を破棄したいパス。
+ */
+ case class Revert( src : NMPath ) extends NMTreeOperations
+
+/**
+ * 指定されたパスのバージョン管理元との衝突状態を解消する操作を定義するケースクラス。
+ * @param src 衝突を解消したいパス
+ */
+ case class Resolve( src : NMPath ) extends NMTreeOperations

Added: trunk/source/NMTree/src/info/ngms/nmtree/NMUser.scala
===================================================================
--- trunk/source/NMTree/src/info/ngms/nmtree/NMUser.scala	                        (rev 0)
+++ trunk/source/NMTree/src/info/ngms/nmtree/NMUser.scala	2009-11-19 11:58:03 UTC (rev 41)
@@ -0,0 +1,23 @@
+/*
+ *  Next Generation Management System Project
+ *  Copyright(c) 2009, NGMS Project Team All Rights Reserved.
+ */
+package info.ngms.nmtree
+
+/**
+ * ユーザー権限を特徴付けるユーザを表現するクラス
+ *
+ * @version $Id$
+ * @author ogasa****@itpl*****
+ */
+trait NMUser {
+    /**
+     * ユーザーID
+     */
+    val id : Int
+
+    /**
+     * ユーザー名
+     */
+    val name : String
+}


Property changes on: trunk/source/NMTree/src/info/ngms/nmtree/NMUser.scala
___________________________________________________________________
Added: svn:keywords
   + Id Revision

Added: trunk/source/NMTree/src/info/ngms/nmtree/NMUserGroup.scala
===================================================================
--- trunk/source/NMTree/src/info/ngms/nmtree/NMUserGroup.scala	                        (rev 0)
+++ trunk/source/NMTree/src/info/ngms/nmtree/NMUserGroup.scala	2009-11-19 11:58:03 UTC (rev 41)
@@ -0,0 +1,23 @@
+/*
+ *  Next Generation Management System Project
+ *  Copyright(c) 2009, NGMS Project Team All Rights Reserved.
+ */
+package info.ngms.nmtree
+
+/**
+ * ユーザー権限を記述するグループの表現
+ *
+ * @version $Id$
+ * @author ogasa****@itpl*****
+ */
+trait NMUserGroup {
+    /**
+     * このグループ名
+     */
+    val name : String
+
+    /**
+     * このグループに属するユーザーのリスト
+     */
+    val users : List[NMUser]
+}


Property changes on: trunk/source/NMTree/src/info/ngms/nmtree/NMUserGroup.scala
___________________________________________________________________
Added: svn:keywords
   + Id Revision




Ngms-svn メーリングリストの案内
Back to archive index