Ejemplo n.º 1
0
 public void RegisterDependencyType(DependencyType dt)
 {
     if (dt == null)
     {
         throw new ArgumentNullException(nameof(dt));
     }
     RegisterDependencyTypeCore(dt);
 }
Ejemplo n.º 2
0
 public bool CouldTransit(DependencyType other)
 {
     if (other == null)
     {
         throw new ArgumentNullException(nameof(other));
     }
     if (Transitivity == DependencyTransitivity.All)
     {
         return(true);
     }
     if (Transitivity == DependencyTransitivity.SameType && Name == other.Name)
     {
         return(true);
     }
     return(false);
 }
Ejemplo n.º 3
0
 private void RegisterDependencyTypeCore(DependencyType dt)
 {
     DependencyType stored;
     if (_types.TryGetValue(dt.Name, out stored))
     {
         // to-do: add check for phase when new value overwrites old value
         if (stored.IsTransitive != dt.IsTransitive)
         {
             Logger.LogError($"Dependency type {JsonUtility.Serialize(dt)} isn't registered successfully because a different type with name {dt.Name} is already registered. Already registered one: {JsonUtility.Serialize(stored)}.");
             throw new InvalidDataException($"A different dependency type with name {dt.Name} is already registered");
         }
         if (stored.Phase == null)
         {
             stored.Phase = dt.Phase;
         }
         Logger.LogVerbose($"Same dependency type with name {dt.Name} has already been registered, ignored.");
         return;
     }
     _types[dt.Name] = dt;
     Logger.LogVerbose($"Dependency type is successfully registered. Name: {dt.Name}, IsTransitive: {dt.IsTransitive}, Phase to work on: {dt.Phase}.");
 }