Todos los modelos que definimos en Mat|r script definen un nuevo tipo de dato que puede ser instanciado y referenciado desde la declaración de otros tipos de datos como las colecciones Array y Map.

Ejemplo:

Model Persona {
	String nombre
	Double altura
	Integer edad
}

Model Aula {
  Array <Persona> alumnos
}

//....

Rule instanciarModelos {
  Persona p = Persona(nombre: "Juan", altura: 1.80)
  Aula a = Aula()
  a.alumnos = []
  a.alumnos.add(p)
}

CONSTRUCTORES

Model ModelName(atributo1: TipoAtributo1, atributo2: TipoAtributo2, …)

Los constructores se generan con el nombre del modelo a instanciar, seguido de los parametros (opcionales) a inicializar.

METODOS PUBLICOS

Model clone()

Retorna una nueva instancia del modelo, devolviendo una copia fiel de cada uno de sus atributos.

Retorna  
Model nueva instancia del modelo.

Bool isEqualTo(Any valor)

Realiza una comparación por valor contra el valor argumento, que puede ser de cualquier tipo. Retorna true si el valor coincide con la instancia del modelo, y false en caso contrario. La comparación sobre valores de tipos diferentes siempre retorna false.

Argumentos  
valor valor a comparar.
Retorna  
Bool true si el valor coincide con la instancia del modelo,y false en caso contrario.

Modelos Integrados en Mat|R Script

Los siguientes tipos de datos son modelos ya integrados en el lenguaje, y por lo tanto responden a los mismos métodos.

Location

Se utiliza para la representación de un punto geolocalización. Este tipo de dato puede ser instanciado por su constructor o como retorno de la consulta de los servicios que acceden al gps del dispositivo dentro del namespace location.

CONSTRUCTOR

Location(latitude: Double, longitude: Double)

Argumentos  
latitude Double: latitud.
longitude Double: longitud.

Marker

Es utilizado por el componente visual MapView que puede ser parte de una experiencia. Permite configurar la información a mostrar e interacción de un punto de geolocalización en el mapa.

CONSTRUCTOR

Marker(location: Location, title: String, description: String, tintColor: String, showBubble: Bool, leftIcon: String)

Argumentos  
location Location: geo-localización donde se desea mostrar el marcador.
title String: titulo de la burbuja de información del marcador.
description String: descripcion de la burbuja de información del marcador.
tintColor String: Codigo hexadecimal del color del marcador.
showBubble Bool: activa o desactiva burbuja de información sobre el marcador.
leftIcon String: url con imagen del marcador.

OAuth

Este tipo de dato es utilizado junto al servicio broker.oauth.* que facilita la autorización utilizando el protocolo OAuth2. En este tipo de dato se configuran todos los campos necesarios que intervienen en los pasos del protocolo OAuth2.

CONSTRUCTOR

OAuth(clientID: String, secret: String, authorizationURL: String, tokenURL: String, redirectURL: String, accountName: String)

Argumentos  
clientID String: ID de cliente.
secret String: clave.
authorizationURL String: URL de autorización.
tokenURL String: URL de recepción de token.
redirectURL String: URL de redirección.
accountName String: nombre de cuenta.