Jens Henrik Badsberg wrote:

Documentation on how to put classes and methods in packages with namespace?

How should I define my classes and methods in "dynamicGraph"???


Jens Henrik,

without reading all the lines below, I'd like to point you to the "Writing R Extensions" manual of R-devel (1.9.0 alpha), which includes some lines on handling S4 classes/methods in Namespaces.

Uwe




 (That is - Can some one point me to the documentation on
 how to put classes and methods in packages with a namespace? )

Currently it is done by the code below.

This gives problems, when a workspace with a "dynmaicGraph" is restored:

1. run:

     local({a <- CRAN.packages()
     install.packages(select.list(a[,1],,TRUE), .libPaths()[1], available=a)})
     search()
     library(dynamicGraph)
     a <- DynamicGraph(1:10)
     search()
     ls(pos=3, all.names=TRUE)
     history()
     q(save="yes")

2. run:

     search()
     ls()
     library(dynamicGraph)
     search()
     ls(pos=3, all.names=TRUE)
     b <- DynamicGraph(1:10)
     history()

 The classes and methods of dynamicGraph is not assigned, see the attached "run2.txt",
 and compare with the list of the objects of dynamicGraph in "run1.txt".

 I have experimented with the argument "where" to setClass, etc., see the attached
 "onLoad.R".

Regards,

Jens Henrik Badsberg



".onAttach" <-
function (lib, pkg) {
require(tcltk)
}
".onLoad" <-
function (lib, pkg) {
.onLoad.dynamicGraph()
}
".onLoad.dynamicGraph" <-
function () {
library(methods)
setClass("GraphLatticeProto", representation(vertices = "list", blocks = "list", blockTree = "list", graphs = "list"))
setClass("CanvasProto", representation(top = "tkwin", canvas = "tkwin", tags = "list", id = "numeric", visibleVertices = "numeric", graphEdges = "list", blockEdges = "list", factorVertices = "list", factorEdges = "list"))
setClass("NodeProto", representation(color = "character", label = "character", label.position = "numeric"), prototype(color = "black", label = "Label", label.position = c(0, 0, 0)))


### .... Many lines deleted ....

if (!isGeneric("label")) {
if (is.function("label")) fun <- label
else fun <- function(object) standardGeneric("label")
setGeneric("label", fun)
}
setMethod("label", "NodeProto", function(object) [EMAIL PROTECTED])
setGeneric("label<-", function(x, value) standardGeneric("label<-"))
setReplaceMethod("label", "NodeProto", function(x, value) {
[EMAIL PROTECTED] <- value
x
})


### .... Many lines deleted ....

}
<<run1.txt>> <<run2.txt>> <<onLoad.R>>



------------------------------------------------------------------------




local({a <- CRAN.packages()
install.packages(select.list(a[,1],,TRUE), .libPaths()[1], available=a)})
search()
library(dynamicGraph)
a <- DynamicGraph(1:10)
search()
ls(pos=3, all.names=TRUE)
history()
q(save="yes")



R : Copyright 2003, The R Foundation for Statistical Computing
Version 1.8.1  (2003-11-21), ISBN 3-900051-00-3

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for a HTML browser interface to help.
Type 'q()' to quit R.


local({a <- CRAN.packages()

+ install.packages(select.list(a[,1],,TRUE), .libPaths()[1], available=a)}) trying URL `http://cran.r-project.org/bin/windows/contrib/1.8/PACKAGES' Content type `text/plain; charset=iso-8859-1' length 16234 bytes opened URL downloaded 15Kb

trying URL 
`http://cran.r-project.org/bin/windows/contrib/1.8/dynamicGraph_0.1.5.9.9.8.8.zip'
Content type `application/zip' length 347067 bytes
opened URL
downloaded 338Kb

package dynamicGraph successfully unpacked and MD5 sums checked

Delete downloaded files (y/N)? y

updating HTML package descriptions

search()

[1] ".GlobalEnv" "package:methods" "package:ctest" "package:mva" [5] "package:modreg" "package:nls" "package:ts" "Autoloads" [9] "package:base"


library(dynamicGraph)

Loading required package: tcltk


a <- DynamicGraph(1:10)
search()

[1] ".GlobalEnv" "package:tcltk" "package:dynamicGraph"
[4] "package:methods" "package:ctest" "package:mva" [7] "package:modreg" "package:nls" "package:ts" [10] "Autoloads" "package:base"


ls(pos=3, all.names=TRUE)

[1] ".__C__BlockEdgeProto" ".__C__BlockProto" [3] ".__C__CanvasProto" ".__C__ContinuousVertexProto" [5] ".__C__defaultModelObjectProto" ".__C__defaultTestObjectProto" [7] ".__C__DiscreteGeneratorProto" ".__C__DiscreteVertexProto" [9] ".__C__EdgeProto" ".__C__FactorEdgeProto" [11] ".__C__FactorVertexProto" ".__C__GeneratorProto" [13] ".__C__GraphLatticeProto" ".__C__LinearGeneratorProto" [15] ".__C__NodeProto" ".__C__OrdinalVertexProto" [17] ".__C__QuadraticGeneratorProto" ".__C__VertexEdgeProto" [19] ".__C__VertexProto" ".__M__addToPopups:dynamicGraph" [21] ".__M__ancestors:dynamicGraph" ".__M__ancestors<-:dynamicGraph" [23] ".__M__color:dynamicGraph" ".__M__color<-:dynamicGraph" [25] ".__M__Colors:dynamicGraph" ".__M__Colors<-:dynamicGraph" [27] ".__M__descendants:dynamicGraph" ".__M__descendants<-:dynamicGraph" [29] ".__M__draw:dynamicGraph" ".__M__edgeLabel:dynamicGraph" [31] ".__M__edgeLabel<-:dynamicGraph" ".__M__edgeWidth:dynamicGraph" [33] ".__M__edgeWidth<-:dynamicGraph" ".__M__index:dynamicGraph" [35] ".__M__index<-:dynamicGraph" ".__M__Indices:dynamicGraph" [37] ".__M__label:dynamicGraph" ".__M__label<-:dynamicGraph" [39] ".__M__labelOfEdge:dynamicGraph" ".__M__labelOfEdge<-:dynamicGraph" [41] ".__M__labelPosition:dynamicGraph" ".__M__labelPosition<-:dynamicGraph" [43] ".__M__LabelPositions:dynamicGraph" ".__M__LabelPositions<-:dynamicGraph" [45] ".__M__Labels:dynamicGraph" ".__M__Labels<-:dynamicGraph" [47] ".__M__name:dynamicGraph" ".__M__name<-:dynamicGraph" [49] ".__M__Names:dynamicGraph" ".__M__Names<-:dynamicGraph" [51] ".__M__NodeAncestors:dynamicGraph" ".__M__NodeAncestors<-:dynamicGraph" [53] ".__M__NodeDescendants:dynamicGraph" ".__M__NodeDescendants<-:dynamicGraph" [55] ".__M__nodeIndices:dynamicGraph" ".__M__NodeIndices:dynamicGraph" [57] ".__M__nodeIndices<-:dynamicGraph" ".__M__nodeIndicesOfEdge:dynamicGraph" [59] ".__M__nodeIndicesOfEdge<-:dynamicGraph" ".__M__NodeTypes:dynamicGraph" [61] ".__M__nodeTypesOfEdge:dynamicGraph" ".__M__oriented:dynamicGraph" [63] ".__M__Oriented:dynamicGraph" ".__M__oriented<-:dynamicGraph" [65] ".__M__Oriented<-:dynamicGraph" ".__M__position:dynamicGraph" [67] ".__M__position<-:dynamicGraph" ".__M__Positions:dynamicGraph" [69] ".__M__Positions<-:dynamicGraph" ".__M__Strata:dynamicGraph" [71] ".__M__Strata<-:dynamicGraph" ".__M__stratum:dynamicGraph" [73] ".__M__stratum<-:dynamicGraph" ".__M__visible:dynamicGraph" [75] ".__M__Visible:dynamicGraph" ".__M__visible<-:dynamicGraph" [77] ".__M__Visible<-:dynamicGraph" ".__M__width:dynamicGraph" [79] ".__M__width<-:dynamicGraph" ".__M__widthOfEdge:dynamicGraph" [81] ".__M__widthOfEdge<-:dynamicGraph" ".__M__Widths:dynamicGraph" [83] ".__M__Widths<-:dynamicGraph" ".onLoad.dynamicGraph" [85] ".onLoad.dynamicGraphInterface" "addToPopups" [87] "ancestors" "ancestors<-" [89] "blockTreeToList" "color" [91] "color<-" "Colors" [93] "Colors<-" "descendants" [95] "descendants<-" "draw" [97] "DynamicGraph" "dynamicGraphMain" [99] "edgeLabel" "edgeLabel<-" [101] "edgeWidth" "edgeWidth<-" [103] "index" "index<-" [105] "Indices" "label" [107] "label<-" "labelOfEdge" [109] "labelOfEdge<-" "labelPosition" [111] "labelPosition<-" "LabelPositions" [113] "LabelPositions<-" "Labels" [115] "Labels<-" "modalDialog" [117] "name" "name<-" [119] "Names" "Names<-" [121] "nameToVertexIndex" "newBlock" [123] "newBlockEdge" "newDefaultModelObject" [125] "newDefaultTestObject" "newFactor" [127] "newFactorEdge" "newVertex" [129] "newVertexEdge" "NodeAncestors" [131] "NodeAncestors<-" "NodeDescendants" [133] "NodeDescendants<-" "nodeIndices" [135] "NodeIndices" "nodeIndices<-" [137] "nodeIndicesOfEdge" "nodeIndicesOfEdge<-" [139] "NodeTypes" "nodeTypesOfEdge" [141] "oriented" "Oriented" [143] "oriented<-" "Oriented<-" [145] "position" "position<-" [147] "Positions" "Positions<-" [149] "returnBlockEdgeList" "returnEdgeList" [151] "returnFactorEdgeList" "returnFactorVerticesAndEdges" [153] "returnVertexList" "setBlocks" [155] "setTreeBlocks" "Strata" [157] "Strata<-" "stratum" [159] "stratum<-" "validFactorClasses" [161] "validVertexClasses" "visible" [163] "Visible" "visible<-" [165] "Visible<-" "width" [167] "width<-" "widthOfEdge" [169] "widthOfEdge<-" "Widths" [171] "Widths<-"


history()
q(save="yes")



------------------------------------------------------------------------


search()
ls()
library(dynamicGraph)
search()
ls(pos=3, all.names=TRUE)
b <- DynamicGraph(1:10)
history()


Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for a HTML browser interface to help. Type 'q()' to quit R.

[Previously saved workspace restored]


search()

[1] ".GlobalEnv" "package:ctest" "package:mva" "package:modreg" "package:nls" [6] "package:ts" "package:methods" "Autoloads" "package:base"


ls()

[1] "a"


library(dynamicGraph)

Loading required package: tcltk


search()

[1] ".GlobalEnv" "package:tcltk" "package:dynamicGraph"
[4] "package:ctest" "package:mva" "package:modreg" [7] "package:nls" "package:ts" "package:methods" [10] "Autoloads" "package:base"


ls(pos=3, all.names=TRUE)

[1] ".onLoad.dynamicGraph" ".onLoad.dynamicGraphInterface"
[3] "blockTreeToList" "DynamicGraph" [5] "dynamicGraphMain" "modalDialog" [7] "nameToVertexIndex" "newBlock" [9] "newBlockEdge" "newDefaultModelObject" [11] "newDefaultTestObject" "newFactor" [13] "newFactorEdge" "newVertex" [15] "newVertexEdge" "returnBlockEdgeList" [17] "returnEdgeList" "returnFactorEdgeList" [19] "returnFactorVerticesAndEdges" "returnVertexList" [21] "setBlocks" "setTreeBlocks" [23] "validFactorClasses" "validVertexClasses"


b <- DynamicGraph(1:10)

Error in getClass(superClass) : "NodeProto" is not a defined class


history()
q()


------------------------------------------------------------------------


______________________________________________
[EMAIL PROTECTED] mailing list
https://www.stat.math.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html

______________________________________________ [EMAIL PROTECTED] mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html

Reply via email to