/// <summary>
        /// Returns an attribute with the given name. Throws an exception if not found.
        /// </summary>
        /// <param name="designModel"></param>
        /// <param name="name"></param>
        /// <returns></returns>
        public static IClassAttribute GetAttribute(this IClassModel designModel, string name)
        {
            var attribute = designModel.Attributes.FirstOrDefault(x => x.Name == name);

            if (attribute == null)
            {
                throw new ParseException(((IDesignModel)designModel).ParseLocation, $"Attribute '{name}' not found in design model '{designModel.FullyQualifiedName}'");
            }

            return(attribute);
        }
        /// <summary>
        /// Returns an outgoing relation with the given name. Throws an exception if not found.
        /// </summary>
        /// <param name="designModel"></param>
        /// <param name="name"></param>
        /// <returns></returns>
        public static IClassRelation GetOutgoingRelation(this IClassModel designModel, string name)
        {
            var relation = designModel.OutgoingRelations.FirstOrDefault(x => x.Name == name);

            if (relation == null)
            {
                throw new ParseException(((IDesignModel)designModel).ParseLocation, $"Relation '{name}' not found in design model '{designModel.FullyQualifiedName}'");
            }

            return(relation);
        }
Exemple #3
0
        public virtual IClassRelation CloneRelation(IClassRelation sourceRelation, IClassModel destinationClassModel, IParseLocationInfo parseLocation)
        {
            var relation = new ClassRelation(sourceRelation.Name, parseLocation: parseLocation);

            relation.CopyPropertiesFrom(sourceRelation, parseLocation);
            relation.Destination = destinationClassModel;
            AddOutgoingRelation(relation);
            destinationClassModel.AddIncomingRelation(relation);

            return(relation);
        }
Exemple #4
0
        public static void Resolve(this ClassRelationReference reference, IClassModel classModel)
        {
            if (reference.Target != null)
            {
                return;
            }

            var relation = classModel.OutgoingRelations.FirstOrDefault(x => x.Name == reference.Name);

            if (relation == null)
            {
                throw new ParseException(reference.ParseLocation, $"Relation '{reference.Name}' not found from class model '{classModel.FullyQualifiedName}'.");
            }

            reference.Target = relation;
        }
Exemple #5
0
        public static void Resolve(this ClassAttributeReference reference, IClassModel classModel)
        {
            if (reference.Target != null)
            {
                return;
            }

            var attribute = classModel.Attributes.FirstOrDefault(x => x.Name == reference.Name);

            if (attribute == null)
            {
                throw new ParseException(reference.ParseLocation, $"Attribute '{reference.Name}' not found from class model '{classModel.FullyQualifiedName}'.");
            }

            reference.Target = attribute;
        }
Exemple #6
0
 public StubClassFileTemplate(IClassModel classModel, IClassTemplate classTemplate) : base(classModel, classTemplate)
 {
 }
Exemple #7
0
 public static ClassRelationReference CreateRelationReference(this IClassModel classModel, string relationName, IParseLocationInfo parseLocation)
 {
     return(new ClassRelationReference(relationName, parseLocation));
 }
Exemple #8
0
        public static ClassAttributeReference CreateAttributeReference(this IClassModel classModel, string attributeName, IParseLocationInfo parseLocation = null)
        {
            var designModel = (IDesignModel)classModel;

            return(new ClassAttributeReference(attributeName, parseLocation ?? designModel.ParseLocation));
        }
Exemple #9
0
        public static ClassModelReference CreateClassModelReference(this IClassModel classModel, IParseLocationInfo parseLocation = null)
        {
            var designModel = (IDesignModel)classModel;

            return(new ClassModelReference(designModel.Name, designModel.Namespace, designModel.DesignModelType, parseLocation ?? designModel.ParseLocation));
        }
 public ProtoClassFileTemplate(IClassModel classModel, IClassTemplate classTemplate) : base(classModel, classTemplate)
 {
 }
 public CSharpClassFileTemplate(IClassModel classModel, IClassTemplate classTemplate) : base(classModel, classTemplate)
 {
 }
 protected ClassFileTemplate(IClassModel classModel, IClassTemplate classTemplate)
 {
     ClassModel    = classModel;
     ClassTemplate = classTemplate;
 }
Exemple #13
0
 public static ClassDerivation GetClassDerivationData(this IClassModel classModel)
 {
     classModel.CustomData.TryGetValue(nameof(ClassDerivation), out var res);
     return((ClassDerivation)res);
 }
Exemple #14
0
 public static void SetClassDerivationData(this IClassModel classModel, ClassDerivation data)
 {
     classModel.CustomData[nameof(ClassDerivation)] = data;
 }
Exemple #15
0
 public static ClassMapping GetClassMappingData(this IClassModel classModel)
 {
     classModel.CustomData.TryGetValue(nameof(ClassMapping), out var res);
     return((ClassMapping)res);
 }
Exemple #16
0
 public static void SetClassMappingData(this IClassModel classModel, ClassMapping data)
 {
     classModel.CustomData[nameof(ClassMapping)] = data;
 }