Package edu.nrao.sss.model.source

Astronomical source object model.

See:
          Description

Interface Summary
SourceCatalogEntry An entry in a SourceCatalog.
SourceCatalogProvider A provider of source catalogs.
SourceGroupListener A convenience interface that locks down the generic item, group, and catalog types.
SourceProvider A provider of astronomical sources.
SourceTableListener A listener of events in a SourceLookupTable.
 

Class Summary
AreaBrightness A source brightness that spans an area, as opposed to a single point.
CleanFileBrightness A source brightness that is described by a Clean Components File.
DescriptiveBrightness A base class for all source brightnesses that are not file based.
DiskBrightness A source brightness of type BrightnessDistribution.DISK.
FileBasedBrightness A source brightness whose description is based on a well known file format.
FitsFileBrightness A source brightness that is described by a Flexible Image Transport System file.
GaussianBrightness A source brightness of type BrightnessDistribution.GAUSSIAN.
PointBrightness A source brightness of type BrightnessDistribution.POINT.
Source An astronomical emitter of radio waves.
SourceBrightness The brightness of an astronomical source.
SourceBrightnessFilter A filter that operates on SourceBrightness objects.
SourceBuilder Helper for test classes; builds sources and their components.
SourceCatalog A catalog of Sources.
SourceCatalogValidator A validator of source catalogs.
SourceFilter A filter that operates on sources.
SourceGroup A collection of Sources and SourceLookupTables.
SourceGroupValidator A validator of source groups.
SourceImageLink A descriptive link to an image of an astronomical source.
SourceLookupTable A lookup table where the index is of type Date and the value is of type Source.
SourceLookupTableValidator A validator of source look-up tables.
SourceValidator A validator of sources.
SourceVelocity The velocity of an astronomical source.
Subsource A portion of an extended astronomical source.
SubsourceValidator A validator of subsources.
UnknownBrightness A source brightness whose properties are unknown.
VlaFluxObservation An observation of the flux from a source performed by the Very Large Array.
VlaHistoricalCalibratorData Structured representation of data from the old VLA Calibrator Manual.
 

Enum Summary
BrightnessDistribution The distribution of the brightness of an astronomical source.
SourceCategory  
SourcePositionType Deprecated. Use edu.sss.model.astronomy.SkyPositionType.
 

Package edu.nrao.sss.model.source Description

Astronomical source object model.

The classes in this package represent the problem-domain objects. They are not tied to any particular persistence mechanism or presentation framework. They are the model classes within a model / view / controller construct.

Inheritance Heirarchy

The inheritance tree for SourceBrightness might seem a little unusual at first. The unusual feature is that the base class, as of this writing, holds the union of all attributes of the extending classes. These attributes, though, are not mutable until we reach the proper position on the inheritance tree. For example, consider the diameter properties and a PointSource. One should not be able to set the diameter of a point source, yet it is not unreasonable to ask a point source what its diameter is (so long as you get back an answer of zero). The diameter properties are available for querying at the base class level, but may not be set unless you are working with either a disk or gaussian source.

One alternative to this approach would be to collapse the entire inheritance tree into a single class, with read/write ability to all the attributes from that class. This would be a very poor design. Since certain properties should not be writable for certain distribution types, this single class would need logic to ensure the proper fields were writable for a given distribution type. The set methods of such a class would most likely need to do something surprising or inconvenient if the client tried to violate the rules: ignore the client's request; throw an exception; adjust the distribution type to match the request.

Another alternative would be to move the attributes to the classes where they can be set. This is a more sensible approach than the one above, but would force reading clients to test the distribution type and cast to the appropriate subtype. We chose our approach so that clients could ask for a property and get a reasonable response without the test and cast, while at the same time allowing those mechanisms that make use of the bean convention to work properly. (A given property doesn't become a bean until it has the x/getX/setX triplet, and this doesn't happen until the proper level in the inheritance tree.)

UML Diagrams

Source

  1. Source Model - Major Objects
  2. Subsource & Position
  3. Subsource & Velocity
  4. Subsource & Brightness
  5. SourceBrightness Inheritance Tree
  6. PolynomialPosition

Source Lookup Table

  1. SourceLookupTable
  2. Adding New Source to Table

Source Catalog

  1. SourceCatalog: Overview
  2. SourceCatalog & SourceGroup

Since:
2006-05-17
Author:
David M. Harland


Copyright © 2009. All Rights Reserved.