# Class: Namespace

## ProtoBuf .Reflect. Namespace

#### new Namespace(buildernon-null, parentnullable, name, optionsopt, syntaxnullable)

Constructs a new Namespace.

##### Parameters:

Name | Type | Attributes | Description
--- | --- | --- | ---
`builder` | ProtoBuf.Builder |  | Builder reference
`parent` | ProtoBuf.Reflect.Namespace | <nullable> | Namespace parent
`name` | string |  | Namespace name
`options` | Object.<string, *> | <optional> | Namespace options
`syntax` | string | <nullable> | The syntax level of this definition (e.g., proto3)

Source:
  - protobuf.js, line 1500

### Extends

- ProtoBuf.Reflect.T

### Members

#### (non-null) builder :ProtoBuf.Builder

Builder reference.

##### Type:

- ProtoBuf.Builder

Inherited From:
  - ProtoBuf.Reflect.T#builder
Source:
  - protobuf.js, line 1417

#### (non-null) children :Array.<ProtoBuf.Reflect.T>

Children inside the namespace.

##### Type:

- Array.<ProtoBuf.Reflect.T>

Source:
  - protobuf.js, line 1512

#### className :string

Fully qualified class name

##### Type:

- string

Overrides:
  - ProtoBuf.Reflect.T#className
Source:
  - protobuf.js, line 1438

#### name :string

Object name in namespace.

##### Type:

- string

Inherited From:
  - ProtoBuf.Reflect.T#name
Source:
  - protobuf.js, line 1431

#### (non-null) options :Object.<string, *>

Options.

##### Type:

- Object.<string, *>

Source:
  - protobuf.js, line 1518

#### (nullable) parent :ProtoBuf.Reflect.T

Parent object.

##### Type:

- ProtoBuf.Reflect.T

Inherited From:
  - ProtoBuf.Reflect.T#parent
Source:
  - protobuf.js, line 1424

#### (non-null) syntax :string

Syntax level (e.g., proto2 or proto3).

##### Type:

- string

Source:
  - protobuf.js, line 1524

### Methods

#### addChild(child)

Adds a child to the namespace.

##### Parameters:

Name | Type | Description
--- | --- | ---
`child` | ProtoBuf.Reflect.T | Child

Source:
  - protobuf.js, line 1556

##### Throws:

If the child cannot be added (duplicate)

Type
  Error

#### build() → {Object.<string, (function()|Object)>}

Builds the namespace and returns the runtime counterpart.

Overrides:
  - ProtoBuf.Reflect.T#build
Source:
  - protobuf.js, line 1648

##### Returns:

Runtime namespace

Type
  Object.<string, (function()|Object)>

#### buildOpt() → {Object.<string, *>}

Builds the namespace's '$options' property.

Source:
  - protobuf.js, line 1666

##### Returns:

Type
  Object.<string, *>

#### fqn() → {string}

Returns the fully qualified name of this object.

Inherited From:
  - ProtoBuf.Reflect.T#fqn
Source:
  - protobuf.js, line 1452

##### Returns:

Fully qualified name as of ".PATH.TO.THIS"

Type
  string

#### getChild(nameOrId) → (nullable) {ProtoBuf.Reflect.T}

Gets a child by its name or id.

##### Parameters:

Name | Type | Description
--- | --- | ---
`nameOrId` | string | number | Child name or id

Source:
  - protobuf.js, line 1576

##### Returns:

The child or null if not found

Type
  ProtoBuf.Reflect.T

#### getChildren(typeopt) → {Array.<ProtoBuf.Reflect.T>}

Returns an array of the namespace's children.

##### Parameters:

Name | Type | Attributes | Description
--- | --- | --- | ---
`type` | ProtoBuf.Reflect.T | <optional> | Filter type (returns instances of this type only). Defaults to null (all children).

Source:
  - protobuf.js, line 1539

##### Returns:

Type
  Array.<ProtoBuf.Reflect.T>

#### getOption(nameopt) → {*|Object.<string, *>}

Gets the value assigned to the option with the specified name.

##### Parameters:

Name | Type | Attributes | Description
--- | --- | --- | ---
`name` | string | <optional> | Returns the option value if specified, otherwise all options are returned.

Source:
  - protobuf.js, line 1687

##### Returns:

null} Option value or NULL if there is no such option

Type
  * | Object.<string, *>

#### qn(tnon-null) → {string}

Determines the shortest qualified name of the specified type, if any, relative to this namespace.

##### Parameters:

Name | Type | Description
--- | --- | ---
`t` | ProtoBuf.Reflect.T | Reflection type

Source:
  - protobuf.js, line 1629

##### Returns:

The shortest qualified name or, if there is none, the fqn

Type
  string

#### resolve(qn, excludeNonNamespaceopt) → (nullable) {ProtoBuf.Reflect.Namespace}

Resolves a reflect object inside of this namespace.

##### Parameters:

Name | Type | Attributes | Description
--- | --- | --- | ---
`qn` | string | !Array.<string> |  | Qualified name to resolve
`excludeNonNamespace` | boolean | <optional> | Excludes non-namespace types, defaults to `false`

Source:
  - protobuf.js, line 1591

##### Returns:

The resolved type or null if not found

Type
  ProtoBuf.Reflect.Namespace

#### toString(includeClassopt)

Returns a string representation of this Reflect object (its fully qualified name).

##### Parameters:

Name | Type | Attributes | Description
--- | --- | --- | ---
`includeClass` | boolean | <optional> | Set to true to include the class name. Defaults to false.

Inherited From:
  - ProtoBuf.Reflect.T#toString
Source:
  - protobuf.js, line 1470

##### Returns:

String representation