private void AssertAllRerefencesAvailableOnCommit(IReferenceSystem referenceSystem
     )
 {
     FillReferenceSystem(referenceSystem);
     referenceSystem.Commit();
     AssertAllReferencesAvailable(referenceSystem);
 }
 private void FillReferenceSystem(IReferenceSystem referenceSystem)
 {
     for (var i = 0; i < References.Length; i++)
     {
         referenceSystem.AddNewReference((ObjectReference) References[i]);
     }
 }
Ejemplo n.º 3
0
 public Transaction(ObjectContainerBase container, Transaction
     systemTransaction, IReferenceSystem referenceSystem)
 {
     // contains DeleteInfo nodes
     _container = container;
     _systemTransaction = systemTransaction;
     _referenceSystem = referenceSystem;
 }
Ejemplo n.º 4
0
 public LocalTransaction(ObjectContainerBase container, Transaction parentTransaction
     , ITransactionalIdSystem idSystem, IReferenceSystem referenceSystem) : base(container
         , parentTransaction, referenceSystem)
 {
     _file = (LocalObjectContainer) container;
     _committedCallbackDispatcher = new _ICommittedCallbackDispatcher_39(this);
     _idSystem = idSystem;
 }
		/// <exception cref="System.Exception"></exception>
		public virtual void SetUp()
		{
			_registry = new ReferenceSystemRegistry();
			_referenceSystem1 = new TransactionalReferenceSystem();
			_referenceSystem2 = new TransactionalReferenceSystem();
			_registry.AddReferenceSystem(_referenceSystem1);
			_registry.AddReferenceSystem(_referenceSystem2);
		}
Ejemplo n.º 6
0
        private void UnbindAll(IInternalObjectContainer container)
        {
            Db4objects.Db4o.Internal.Transaction transaction = container.Transaction;
            // FIXME should that ever happen?
            if (transaction == null)
            {
                return;
            }
            IReferenceSystem referenceSystem = transaction.ReferenceSystem();

            referenceSystem.TraverseReferences(new _IVisitor4_95(this));
        }
Ejemplo n.º 7
0
        /// <summary>
        /// Initializes a new instance of the <see cref="GeometryList{T}" /> class.
        /// </summary>
        /// <param name="capacity">The number of elements that the list can initially store.</param>
        /// <param name="precisionModel">The precision model.</param>
        /// <param name="referenceSystem">The reference system.</param>
        /// <param name="metadata">The metadata.</param>
        /// <exception cref="System.ArgumentOutOfRangeException">The capacity is less than 0.</exception>
        public GeometryList(Int32 capacity, PrecisionModel precisionModel, IReferenceSystem referenceSystem, IDictionary <String, Object> metadata)
            : base(precisionModel, referenceSystem, metadata)
        {
            if (capacity < 0)
            {
                throw new ArgumentOutOfRangeException("capacity", "The capacity is less than 0.");
            }

            _geometries = new T[capacity];
            _size       = 0;
            _version    = 0;
        }
Ejemplo n.º 8
0
 /// <summary>
 /// Writes the Coordinate Reference System to GeoJSON file.
 /// </summary>
 /// <param name="system">The ReferenceSystem.</param>
 private void WriteCoordinateReferenceSystem(IReferenceSystem system)
 {
     _jsonwriter.WritePropertyName("crs");
     _jsonwriter.WriteStartObject();
     _jsonwriter.WritePropertyName("type");
     _jsonwriter.WriteValue("name");
     _jsonwriter.WritePropertyName("properties");
     _jsonwriter.WriteStartObject();
     _jsonwriter.WritePropertyName("name");
     _jsonwriter.WriteValue(system.Identifier);
     _jsonwriter.WriteEndObject();
     _jsonwriter.WriteEndObject();
 }
Ejemplo n.º 9
0
		public override Transaction NewTransaction(Transaction parentTransaction, IReferenceSystem
			 referenceSystem, bool isSystemTransaction)
		{
			ITransactionalIdSystem systemIdSystem = null;
			if (!isSystemTransaction)
			{
				systemIdSystem = SystemTransaction().IdSystem();
			}
			IClosure4 idSystem = new _IClosure4_58(this);
			ITransactionalIdSystem transactionalIdSystem = NewTransactionalIdSystem(systemIdSystem
				, idSystem);
			return new LocalTransaction(this, parentTransaction, transactionalIdSystem, referenceSystem
				);
		}
Ejemplo n.º 10
0
        /// <summary>
        /// Reads the reference system.
        /// </summary>
        private void ReadReferenceSystem()
        {
            // read the reference system from the WKT text
            using (StreamReader reader = new StreamReader(OpenPath(ReferenceSystemFilePath)))
            {
                StringBuilder builder = new StringBuilder();
                while (!reader.EndOfStream)
                {
                    builder.Append(reader.ReadLine().Trim());
                }

                _referenceSystem = WellKnownTextConverter.ToReferenceSystem(builder.ToString());
            }
        }
Ejemplo n.º 11
0
        /// <summary>
        /// Reads the reference system.
        /// </summary>
        private void ReadReferenceSystem()
        {
            // read the reference system from the WKT text
            using (StreamReader reader = new StreamReader(_fileSystem.OpenFile(_basePath + _fileSystem.DirectorySeparator + _baseFileName + ".prj", FileMode.Open)))
            {
                StringBuilder builder = new StringBuilder();
                while (!reader.EndOfStream)
                {
                    builder.Append(reader.ReadLine().Trim());
                }

                _referenceSystem = WellKnownTextConverter.ToReferenceSystem(builder.ToString());
            }
        }
Ejemplo n.º 12
0
        /// <summary>
        /// Apply the read operation for a geometry.
        /// </summary>
        /// <returns>The geometry read from the stream.</returns>
        protected override IGeometry ApplyReadGeometry()
        {
            try
            {
                IReferenceSystem             referenceSystem = ReadGeometryReferenceSystem();
                IRaster                      raster          = ReadRasterContent(referenceSystem);
                IDictionary <String, Object> metadata        = ReadGeometryMetadata();

                return(ResolveFactory(referenceSystem).CreateSpectralPolygon(raster, metadata));
            }
            catch (Exception ex)
            {
                throw new InvalidDataException("Stream content is invalid.", ex);
            }
        }
        private void RemoveReference(ReferenceSystemRegistry.IReferenceSource referenceSource
                                     )
        {
            IEnumerator i = _referenceSystems.GetEnumerator();

            while (i.MoveNext())
            {
                IReferenceSystem referenceSystem = (IReferenceSystem)i.Current;
                ObjectReference  reference       = referenceSource.ReferenceFrom(referenceSystem);
                if (reference != null)
                {
                    referenceSystem.RemoveReference(reference);
                }
            }
        }
Ejemplo n.º 14
0
        public virtual void TestRemoveReferenceSystemOnClose()
        {
            LocalObjectContainer container       = (LocalObjectContainer)Db();
            IReferenceSystem     referenceSystem = container.CreateReferenceSystem();
            Transaction          transaction     = container.NewTransaction(container.SystemTransaction(),
                                                                            referenceSystem, false);

            referenceSystem.AddNewReference(new ObjectReference(TestId));
            referenceSystem.AddNewReference(new ObjectReference(TestId + 1));
            container.ReferenceSystemRegistry().RemoveId(TestId);
            Assert.IsNull(referenceSystem.ReferenceForId(TestId));
            transaction.Close(false);
            container.ReferenceSystemRegistry().RemoveId(TestId + 1);
            Assert.IsNotNull(referenceSystem.ReferenceForId(TestId + 1));
        }
        public override Transaction NewTransaction(Transaction parentTransaction, IReferenceSystem
                                                   referenceSystem, bool isSystemTransaction)
        {
            ITransactionalIdSystem systemIdSystem = null;

            if (!isSystemTransaction)
            {
                systemIdSystem = SystemTransaction().IdSystem();
            }
            IClosure4 idSystem = new _IClosure4_58(this);
            ITransactionalIdSystem transactionalIdSystem = NewTransactionalIdSystem(systemIdSystem
                                                                                    , idSystem);

            return(new LocalTransaction(this, parentTransaction, transactionalIdSystem, referenceSystem
                                        ));
        }
        /// <summary>
        /// Adds an era.
        /// </summary>
        /// <param name="identifier">The identifier.</param>
        /// <param name="name">The name.</param>
        /// <param name="begin">The beginning date.</param>
        /// <param name="end">The ending date.</param>
        /// <exception cref="System.ArgumentException">
        /// The beginning date has a different reference system to the eras.
        /// or
        /// The ending date has a different reference system to the eras.
        /// </exception>
        public void AddEra(String identifier, String name, DateAndTime begin, Positioning.DateAndTime end)
        {
            if (_beginEndReferenceSystem == null)
            {
                _beginEndReferenceSystem = begin.ReferenceSystem;
            }

            if (!_beginEndReferenceSystem.Equals(begin.ReferenceSystem))
            {
                throw new ArgumentException("The beginning date has a different reference system to the eras.", "begin");
            }
            if (!_beginEndReferenceSystem.Equals(end.ReferenceSystem))
            {
                throw new ArgumentException("The ending date has a different reference system to the eras.", "end");
            }

            _eras.Add(new OrdinalEra(identifier, name, this, begin, end));
        }
Ejemplo n.º 17
0
        /// <summary>
        /// Converts the geometry from Geography Markup Language (GML) representation.
        /// </summary>
        /// <param name="source">The source XML element.</param>
        /// <param name="geometryFactory">The geometry factory.</param>
        /// <param name="referenceSystemFactory">The reference system factory.</param>
        /// <returns>The converted geometry.</returns>
        /// <remarks>
        /// The <see cref="XElement" /> does not contain the namespace attribute for <code>gml</code>
        /// (<code>xmlns:gml="http://www.opengis.net/gml/"</code>), which should be added to a parent node before usage.
        /// </remarks>
        /// <exception cref="System.ArgumentNullException">
        /// The source is null.
        /// or
        /// The geometry factory is null.
        /// or
        /// The reference system factory is null.
        /// </exception>
        /// <exception cref="System.ArgumentException">The specified source is invalid.</exception>
        public static IGeometry ToGeometry(this XElement source, IGeometryFactory geometryFactory, IReferenceSystemFactory referenceSystemFactory)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }
            if (geometryFactory == null)
            {
                throw new ArgumentNullException(nameof(geometryFactory));
            }
            if (referenceSystemFactory == null)
            {
                throw new ArgumentNullException(nameof(referenceSystemFactory));
            }

            IReferenceSystem referenceSystem = GetReferenceSystem(source.Attribute("srsName"), referenceSystemFactory);

            return(ToGeometry(source, geometryFactory.WithReferenceSystem(referenceSystem)));
        }
Ejemplo n.º 18
0
        public virtual void TestClose()
        {
            Transaction trans = null;

            lock (_server.Lock())
            {
                trans = _server.NewUserTransaction();
            }
            IReferenceSystem       referenceSystem = trans.ReferenceSystem();
            ObjectContainerSession client          = new ObjectContainerSession(_server, trans);

            // FIXME: Need to unregister reference system also
            //        for crashed clients that never get closed.
            client.Close();
            // should have been removed on close.
            bool wasNotRemovedYet = _server.ReferenceSystemRegistry().RemoveReferenceSystem(referenceSystem
                                                                                            );

            Assert.IsFalse(wasNotRemovedYet);
        }
Ejemplo n.º 19
0
        /// <summary>
        /// Initializes a new instance of the <see cref="Polygon" /> class.
        /// </summary>
        /// <param name="precisionModel">The precision model.</param>
        /// <param name="referenceSystem">The reference system.</param>
        /// <param name="shell">The shell.</param>
        /// <param name="holes">The collection of holes.</param>
        /// <exception cref="System.ArgumentNullException">The shell is null.</exception>
        public Polygon(PrecisionModel precisionModel, IReferenceSystem referenceSystem, LinearRing shell, IEnumerable <LinearRing> holes)
            : base(precisionModel, referenceSystem)
        {
            // initialize shell
            this.Shell = shell ?? throw new ArgumentNullException(nameof(shell));

            // initialize holes
            this.holes = new List <LinearRing>();
            if (holes != null)
            {
                foreach (LinearRing hole in holes)
                {
                    if (hole == null)
                    {
                        continue;
                    }

                    this.holes.Add(hole);
                }
            }
        }
        /// <summary>
        /// Resolves the geometry factory.
        /// </summary>
        /// <param name="referenceSystem">The reference system.</param>
        /// <returns>The factory for producing geometries.</returns>
        protected IGeometryFactory ResolveFactory(IReferenceSystem referenceSystem)
        {
            if (_factory == null)
            {
                if (_factoryType == null)
                {
                    _factory = FactoryRegistry.GetFactory <IGeometryFactory>(referenceSystem);
                }
                else
                {
                    _factory = (IGeometryFactory)FactoryRegistry.GetFactory(_factoryType, referenceSystem);
                }
            }

            if (referenceSystem != null && !_factory.ReferenceSystem.Equals(referenceSystem))
            {
                _factory = (IGeometryFactory)FactoryRegistry.GetFactory(_factory.GetType(), referenceSystem);
            }

            return(_factory);
        }
Ejemplo n.º 21
0
        /// <summary>
        /// Reads the raster of the geometry.
        /// </summary>
        /// <param name="referenceSystem">The reference system.</param>
        /// <returns>The raster of the geometry.</returns>
        private IRaster ReadRasterContent(IReferenceSystem referenceSystem)
        {
            IRaster raster = ResolveFactory(referenceSystem).GetFactory <ISpectralGeometryFactory>().GetFactory <IRasterFactory>().CreateRaster(_numberOfBands, _numberOfRows, _numberOfColumns, _radiometricResolution, _mapper);

            _baseStream.Seek(_bytesSkipped, SeekOrigin.Begin);

            Int32 numberOfStrips;

            switch (_layout)
            {
            case RawImageLayout.BandInterlevedByLine:
            case RawImageLayout.BandInterlevedByPixel:
                // prevent from reading too much bytes into the memory at once
                numberOfStrips = _bytesPerBandRow / MaxReadableByteCount;

                for (Int32 i = 0; i < numberOfStrips; i++)
                {
                    ReadStrip(MaxReadableByteCount, raster);
                }
                ReadStrip(_bytesPerRow - numberOfStrips * MaxReadableByteCount, raster);
                break;

            case RawImageLayout.BandSequential:
                // prevent from reading too much bytes into the memory at once
                numberOfStrips = _bytesPerRow / MaxReadableByteCount;

                for (Int32 i = 0; i < numberOfStrips; i++)
                {
                    ReadStrip(MaxReadableByteCount, raster);
                }
                ReadStrip(_bytesPerRow - numberOfStrips * MaxReadableByteCount, raster);
                break;
            }

            return(raster);
        }
Ejemplo n.º 22
0
		public virtual void SetUp()
		{
			_refSys = CreateReferenceSystem();
		}
 private void AssertContains(IReferenceSystem referenceSystem, object[] objects)
 {
     var expectingVisitor = new ExpectingVisitor(objects);
     referenceSystem.TraverseReferences(expectingVisitor);
     expectingVisitor.AssertExpectations();
 }
		internal TransactionObjectCarrier(ObjectContainerBase container, Transaction parentTransaction
			, ITransactionalIdSystem idSystem, IReferenceSystem referenceSystem) : base(container
			, parentTransaction, idSystem, referenceSystem)
		{
			_idSystem = idSystem;
		}
			public ObjectReference ReferenceFrom(IReferenceSystem referenceSystem)
			{
				return referenceSystem.ReferenceForId(id);
			}
 private void AssertAllReferencesAvailable(IReferenceSystem referenceSystem)
 {
     AssertContains(referenceSystem, References);
 }
		public TransactionalReferenceSystemBase()
		{
			CreateNewReferences();
			_committedReferences = NewReferenceSystem();
		}
Ejemplo n.º 28
0
 /// <summary>
 /// Initializes a new instance of the <see cref="StoredGeometryCollection{GeometryType}" /> class.
 /// </summary>
 /// <param name="precisionModel">The precision model.</param>
 /// <param name="referenceSystem">The reference system.</param>
 /// <param name="driver">The geometry driver.</param>
 /// <param name="identifier">The feature identifier.</param>
 /// <param name="indexes">The indexes of the geometry within the feature.</param>
 /// <exception cref="System.ArgumentNullException">
 /// The driver is null.
 /// or
 /// The identifier is null.
 /// </exception>
 public StoredGeometryCollection(PrecisionModel precisionModel, IReferenceSystem referenceSystem, IGeometryDriver driver, String identifier, IEnumerable <Int32> indexes)
     : base(precisionModel, referenceSystem, driver, identifier, indexes)
 {
 }
Ejemplo n.º 29
0
 public TransactionalReferenceSystemBase()
 {
     CreateNewReferences();
     _committedReferences = NewReferenceSystem();
 }
		protected virtual void CreateNewReferences()
		{
			_newReferences = NewReferenceSystem();
		}
Ejemplo n.º 31
0
 // do nothing here
 public override sealed Transaction NewTransaction(Transaction parentTransaction,
     IReferenceSystem referenceSystem, bool isSystemTransaction)
 {
     if (null != parentTransaction)
     {
         return parentTransaction;
     }
     return new TransactionObjectCarrier(this, null, new TransportIdSystem(this), referenceSystem
         );
 }
		public virtual bool RemoveReferenceSystem(IReferenceSystem referenceSystem)
		{
			bool res = _referenceSystems.Remove(referenceSystem);
			referenceSystem.Discarded();
			return res;
		}
			public ObjectReference ReferenceFrom(IReferenceSystem referenceSystem)
			{
				return reference;
			}
Ejemplo n.º 34
0
 /// <summary>
 /// Initializes a new instance of the <see cref="Triangle" /> class.
 /// </summary>
 /// <param name="first">The first coordinate.</param>
 /// <param name="second">The second coordinate.</param>
 /// <param name="third">The third coordinate.</param>
 /// <param name="precisionModel">The precision model.</param>
 /// <param name="referenceSystem">The reference system.</param>
 /// <param name="metadata">The metadata.</param>
 public Triangle(Coordinate first, Coordinate second, Coordinate third, PrecisionModel precisionModel, IReferenceSystem referenceSystem, IDictionary <String, Object> metadata)
     : base(new Coordinate[] { first, second, third }, null, precisionModel, referenceSystem, metadata)
 {
 }
 private void AssertAllRerefencesAvailableOnNew(IReferenceSystem referenceSystem)
 {
     FillReferenceSystem(referenceSystem);
     AssertAllReferencesAvailable(referenceSystem);
 }
Ejemplo n.º 36
0
 /// <summary>
 /// Initializes a new instance of the <see cref="Point" /> class.
 /// </summary>
 /// <param name="precisionModel">The precision model.</param>
 /// <param name="referenceSystem">The reference system.</param>
 /// <param name="coordinate">The coordinate.</param>
 public Point(PrecisionModel precisionModel, IReferenceSystem referenceSystem, Coordinate coordinate)
     : base(precisionModel, referenceSystem)
 {
     this.coordinate = this.PrecisionModel.MakePrecise(coordinate);
 }
 private void AssertEmpty(IReferenceSystem referenceSystem)
 {
     AssertContains(referenceSystem, new object[] {});
 }
 public ObjectReference ReferenceFrom(IReferenceSystem referenceSystem)
 {
     return(referenceSystem.ReferenceForId(id));
 }
 public ObjectReference ReferenceFrom(IReferenceSystem referenceSystem)
 {
     return(referenceSystem.ReferenceForObject(obj));
 }
 public ObjectReference ReferenceFrom(IReferenceSystem referenceSystem)
 {
     return(reference);
 }
Ejemplo n.º 41
0
 /// <summary>
 /// Initializes a new instance of the <see cref="MultiPoint" /> class.
 /// </summary>
 /// <param name="precisionModel">The precision model.</param>
 /// <param name="referenceSystem">The reference system.</param>
 public MultiPoint(PrecisionModel precisionModel, IReferenceSystem referenceSystem)
     : base(precisionModel, referenceSystem)
 {
 }
 public virtual void AddReferenceSystem(IReferenceSystem referenceSystem)
 {
     _referenceSystems.Add(referenceSystem);
 }
Ejemplo n.º 43
0
 /// <summary>
 /// Initializes a new instance of the <see cref="MultiPoint" /> class.
 /// </summary>
 /// <param name="precisionModel">The precision model.</param>
 /// <param name="referenceSystem">The reference system.</param>
 /// <param name="source">The source of points.</param>
 /// <exception cref="System.ArgumentNullException">The source is null.</exception>
 public MultiPoint(PrecisionModel precisionModel, IReferenceSystem referenceSystem, IEnumerable <IPoint> source)
     : base(precisionModel, referenceSystem, source)
 {
 }
			public ObjectReference ReferenceFrom(IReferenceSystem referenceSystem)
			{
				return referenceSystem.ReferenceForObject(obj);
			}
Ejemplo n.º 45
0
 /// <summary>
 /// Initializes a new instance of the <see cref="MultiLineString" /> class.
 /// </summary>
 /// <param name="precisionModel">The precision model.</param>
 /// <param name="referenceSystem">The reference system.</param>
 public MultiLineString(PrecisionModel precisionModel, IReferenceSystem referenceSystem)
     : base(precisionModel, referenceSystem)
 {
 }
		public virtual void AddReferenceSystem(IReferenceSystem referenceSystem)
		{
			_referenceSystems.Add(referenceSystem);
		}
Ejemplo n.º 47
0
 /// <summary>
 /// Initializes a new instance of the <see cref="MultiLineString" /> class.
 /// </summary>
 /// <param name="precisionModel">The precision model.</param>
 /// <param name="referenceSystem">The reference system.</param>
 /// <param name="source">The source of line strings.</param>
 /// <exception cref="System.ArgumentNullException">
 /// The factory is null.
 /// or
 /// The source is null.
 /// </exception>
 public MultiLineString(PrecisionModel precisionModel, IReferenceSystem referenceSystem, IEnumerable <ILineString> source)
     : base(precisionModel, referenceSystem, source)
 {
 }
Ejemplo n.º 48
0
		public sealed override Transaction NewTransaction(Transaction parentTransaction, 
			IReferenceSystem referenceSystem, bool isSystemTransaction)
		{
			return new ClientTransaction(this, parentTransaction, referenceSystem);
		}
Ejemplo n.º 49
0
 public virtual void SetUp()
 {
     _refSys = CreateReferenceSystem();
 }
Ejemplo n.º 50
0
 internal ClientTransaction(ClientObjectContainer container, Transaction parentTransaction
                            , IReferenceSystem referenceSystem) : base(container, parentTransaction, referenceSystem
                                                                       )
 {
     _client = container;
 }
Ejemplo n.º 51
0
		public abstract Transaction NewTransaction(Transaction parentTransaction, IReferenceSystem
			 referenceSystem, bool isSystemTransaction);
Ejemplo n.º 52
0
 protected virtual void CreateNewReferences()
 {
     _newReferences = NewReferenceSystem();
 }
		internal ClientTransaction(ClientObjectContainer container, Transaction parentTransaction
			, IReferenceSystem referenceSystem) : base(container, parentTransaction, referenceSystem
			)
		{
			_client = container;
		}