Jens Henrik Badsberg
2004-Mar-16 11:38 UTC
[Rd] VS: Documentation on how to put classes and methods in packages with namespace?
> -----Oprindelig meddelelse----- > Fra: Jens Henrik Badsberg > Sendt: 16. marts 2004 11:37 > Til: 'r-help@stat.math.ethz.ch' > Emne: Documentation on how to put classes and methods in packages with namespace? > > > Documentation on how to put classes and methods in packages with namespace? > > How should I define my classes and methods in "dynamicGraph"??? > > (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) object@label) > setGeneric("label<-", function(x, value) standardGeneric("label<-")) > setReplaceMethod("label", "NodeProto", function(x, value) { > x@label <- value > x > }) > > ### .... Many lines deleted .... > > } > > <<run1.txt>> > > <<run2.txt>> > > <<onLoad.R>>-------------- next part -------------- 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")-------------- next part -------------- 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()