Added license information to R source files.
[openmx:openmx.git] / R / MxAlgebraObjective.R
1 #
2 #   Copyright 2007-2009 The OpenMx Project
3 #
4 #   Licensed under the Apache License, Version 2.0 (the "License");
5 #   you may not use this file except in compliance with the License.
6 #   You may obtain a copy of the License at
7
8 #        http://www.apache.org/licenses/LICENSE-2.0
9
10 #    Unless required by applicable law or agreed to in writing, software
11 #    distributed under the License is distributed on an "AS IS" BASIS,
12 #    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 #   See the License for the specific language governing permissions and
14 #   limitations under the License.
15
16
17 setClass(Class = "MxAlgebraObjective",
18         representation = representation(
19                 algebra = "MxCharOrNumber"),
20         contains = "MxBaseObjective")
21
22 setMethod("initialize", "MxAlgebraObjective",
23         function(.Object, name, algebra) {
24                 .Object@name <- name
25                 .Object@algebra <- algebra
26                 return(.Object)
27         }
28 )
29
30 setMethod("omxObjFunConvert", signature("MxAlgebraObjective", "MxFlatModel"), function(.Object, model, definitions) {
31                 name <- .Object@name
32                 algebra <- .Object@algebra
33                 algebraIndex <- omxLocateIndex(model, algebra, name)
34                 if (is.na(algebraIndex)) {
35                         stop(paste("Could not find a matrix/algebra with name", 
36                                 algebra, "in the model."))
37                 }
38                 return(new("MxAlgebraObjective", name, algebraIndex))
39 })
40
41
42 mxAlgebraObjective <- function(algebra, name = omxUntitledName()) {
43         if (typeof(name) != "character") {
44                 stop("Name argument is not a string (the name of the objective function)")
45         }
46         if (missing(algebra) || typeof(algebra) != "character") {
47                 stop("Algebra argument is not a string (the name of the algebra)")
48         }
49         return(new("MxAlgebraObjective", name, algebra))
50 }