class ModelMaker::Entity

Attributes

name[R]
project[RW]
protocols[RW]
superclass[RW]

Public Class Methods

new(name) click to toggle source
# File src/lib/modelmaker.rb, line 111
def initialize(name)
    @name = name
    
    @superclass = 'NSObject'
    @properties = {}
    @protocols = []
    @deps = []
end

Public Instance Methods

add_dependency(cls) click to toggle source
# File src/lib/modelmaker.rb, line 160
def add_dependency(cls)
    @deps << cls
end
add_property(property) click to toggle source
# File src/lib/modelmaker.rb, line 156
def add_property(property)
    @properties[property.name] = property
end
class_name() click to toggle source
# File src/lib/modelmaker.rb, line 132
def class_name
    if @project
        "#{@project.class_prefix}#{@name}"
    else
        @name
    end
end
Also aliased as: name
dependencies() click to toggle source
# File src/lib/modelmaker.rb, line 164
def dependencies
    if not @project
        raise "Need a project to list dependencies"
    end
    
    deps = []
    for dependency in @deps do
        deps << @project.get_entity(dependency)
    end
    
    deps
end
instance_name() click to toggle source
# File src/lib/modelmaker.rb, line 150
def instance_name
    name = @name.clone
    name[0] = name[0].downcase
    name
end
mutable_class() click to toggle source
# File src/lib/modelmaker.rb, line 140
def mutable_class
    if @project
        "#{@project.class_prefix}Mutable#{@name}"
    else
        "Mutable#{@name}"
    end
end
needs_init?() click to toggle source
# File src/lib/modelmaker.rb, line 181
def needs_init?
    for property in properties do
        if property.needs_init?
            return true
        end
    end
    
    return false
end
project=(project) click to toggle source
# File src/lib/modelmaker.rb, line 124
def project=(project)
    @project = project
    
    for property in properties do
        property.project = project
    end
end
properties() click to toggle source
# File src/lib/modelmaker.rb, line 177
def properties
    @properties.values
end
short_name() click to toggle source
# File src/lib/modelmaker.rb, line 120
def short_name
    @name
end