Dear all,

To explain my problem I am attaching a demonstration package "myclasspkg":
I have the following two S4 classes with similar inheritance:
  SubSubClassA <- SubClassB <- BaseClass
  SubSubClassB <- SubClassB <- BaseClass

In R I am calling the following functions:
> library(myclasspkg)
> subA <- new("SubClassA",filename="OutSubA",filedir="/Volumes/CoreData/CRAN/Workspaces/rclasspkg",mytitle="TitleSubA") > subsubA <- new("SubSubClassA",filename="MyFileName",filedir="/Volumes/CoreData/CRAN/Workspaces/rclasspkg",subA=subA) > subsubB <- new("SubSubClassB",filename="MyFileNameB",filedir="/Volumes/CoreData/CRAN/Workspaces/rclasspkg",subA=subA)

Creating subsubA works fine and gives the correct result:
> subsubA <- new("SubSubClassA",filename="MyFileName",filedir="/Volumes/CoreData/CRAN/Workspaces/rclasspkg",subA=subA)
[1] "------initialize:SubSubClassA------"
[1] "SubSubClassA:init:class(.Object) =  SubSubClassA"
[1] "------initialize:SubClassB------"
[1] "SubClassB:init:class(.Object) =  SubSubClassA"
[1] "------initialize:BaseClass------"
[1] "BaseClass:init:class(.Object) =  SubSubClassA"
[1] "------pathFile------"
[1] "BaseClass:init:dirfile = /Volumes/CoreData/CRAN/Workspaces/rclasspkg/MyFileName"
[1] "------setValidity:BaseClass------"
[1] "BaseClass:val:class(object) =  SubClassB"
[1] "BaseClass:val:dirfile = /Volumes/CoreData/CRAN/Workspaces/rclasspkg/MyFileName"
[1] "BaseClass:val:filedir =  /Volumes/CoreData/CRAN/Workspaces/rclasspkg"
[1] "------setValidity:SubClassB------"
[1] "SubClassB:val:class(object) =  SubClassB"
[1] "SubClassB:val:filename =  MyFileName"
[1] "BaseClass:val:dirfile = /Volumes/CoreData/CRAN/Workspaces/rclasspkg/MyFileName"
[1] "------setValidity:SubSubClassA------"
[1] "SubSubClassA:val:class(.Object) =  SubSubClassA"

In contrast, when trying to create subsubB, it seems that setValidity
re-initializes SubClassB:
> subsubB <- new("SubSubClassB",filename="MyFileNameB",filedir="/Volumes/CoreData/CRAN/Workspaces/rclasspkg",subA=subA)
[1] "------initialize:SubSubClassB------"
[1] "SubSubClassB:init:class(.Object) =  SubSubClassB"
[1] "SubSubClassB:init:subsubnameB =  subsubNameB"
[1] "------initialize:SubClassB------"
[1] "SubClassB:init:class(.Object) =  SubSubClassB"
[1] "------initialize:BaseClass------"
[1] "BaseClass:init:class(.Object) =  SubSubClassB"
[1] "------pathFile------"
[1] "BaseClass:init:dirfile = /Volumes/CoreData/CRAN/Workspaces/rclasspkg/MyFileNameB"
[1] "------setValidity:BaseClass------"
[1] "------initialize:SubClassB------"
[1] "SubClassB:init:class(.Object) =  SubClassB"
[1] "------initialize:BaseClass------"
[1] "BaseClass:init:class(.Object) =  SubClassB"
[1] "------pathFile------"
Error in if (dirname(filename) != ".") { :
       argument is of length zero

Can someone tell me why the first case works fine, but the second case not?
Probably, I am making some mistake, but since two weeks I am unable to find it.
Thank you in advance.

P.S.: I am running R-2.5.0 on Intel-Mac OS 10.4.8.

Best regards
Christian
_._._._._._._._._._._._._._._._
C.h.i.s.t.i.a.n S.t.r.a.t.o.w.a
V.i.e.n.n.a       A.u.s.t.r.i.a
_._._._._._._._._._._._._._._._

Attachment: myclasspkg_0.1.1.tar.gz
Description: GNU Zip compressed data

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to