Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Clarify concrete and abstract classes #16

Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 34 additions & 6 deletions src/main/md/otio-core.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,12 +30,12 @@ class Timeline [[#object-model-Timeline]]
class Clip [[#object-model-Clip]]
class Gap [[#object-model-Gap]]

class Composition [[#object-model-Composition]]
class Composable [[#object-model-Composable]]
abstract class Composition [[#object-model-Composition]]
abstract class Composable [[#object-model-Composable]]

together {
class Transition [[#object-model-Transition]]
class Item [[#object-model-Item]]
abstract class Item [[#object-model-Item]]
}


Expand All @@ -45,7 +45,7 @@ class Marker [[#object-model-Marker]]

class Stack [[#object-model-Stack]]
class Track [[#object-model-Track]]
class MediaReference [[#object-model-MediaReference]]
abstract class MediaReference [[#object-model-MediaReference]]

Timeline *-- Stack

Expand Down Expand Up @@ -183,6 +183,8 @@ In this serialization:
altered whenever any requirements associated with a class is modified or added -- allowing an implementation to infer the version of the
object model;

* abstract classes cannot be serialized and no schema definitions exist for them;

* the serialization for both current and past versions of classes is specified; and

* the process by which the serialization of an earlier version of a class is converted to a current version of the class is
Expand Down Expand Up @@ -212,7 +214,7 @@ hide empty members
hide circle
skinparam classAttributeIconSize 0

class SerializableObject {
abstract class SerializableObject {
name: String = ""
metadata : JSONObject = JSONObject()
}
Expand Down Expand Up @@ -497,7 +499,7 @@ The following are two values are defined:
* `"Video"`
* `"Audio"`

_EDITOR'S NOTE_: is a `track` always have only of a single kind?
_EDITOR'S NOTE_: is a `track` always of a single kind?

##### composition_kind()

Expand Down Expand Up @@ -759,6 +761,19 @@ _EXAMPLE 2_: Example values include: `"Blur"`, `"Crop"`, `"Flip"`.
```json
"Effect": {
"anyOf" : [
{
"type": "object",
"properties" : {
"OTIO_SCHEMA" : {
"const": "Effect.1"
},
"name" : { "$ref": "#/definitions/NullableString" },
"metadata" : { "$ref": "#/definitions/JSONObject" },
"effect_name" : { "$ref": "#/definitions/NullableString" }
},
"require" : ["OTIO_SCHEMA"],
"additionalProperties": false
},
{ "$ref": "#/definitions/TimeEffect" }
]
}
Expand Down Expand Up @@ -790,6 +805,19 @@ Effect <|-- TimeEffect
```json
"TimeEffect": {
"anyOf" : [
{
"type": "object",
"properties" : {
"OTIO_SCHEMA" : {
"const": "TimeEffect.1"
},
"name" : { "$ref": "#/definitions/NullableString" },
"metadata" : { "$ref": "#/definitions/JSONObject" },
"effect_name" : { "$ref": "#/definitions/NullableString" }
},
"require" : ["OTIO_SCHEMA"],
"additionalProperties": false
},
{ "$ref": "#/definitions/FreezeFrame" },
{ "$ref": "#/definitions/LinearTimeWarp" }
]
Expand Down