private void ProcessInverse(SEntity sEntity, SToken sToken) { SAttributeInverse sAttributeInverse = new SAttributeInverse(sToken.StringValue); SToken oneToken = SLexer.Tokenizer(_dataStream); if (oneToken.TokenType != STokenType.COLON) { throw new Exception("Error in inverse attribute : " + SLexer.CurrentRow + " : " + SLexer.CurrentColumn); } sAttributeInverse.Type = ProcessInverseParameter(); oneToken = SLexer.Tokenizer(_dataStream); // referencing entity's attribute name oneToken = SLexer.Tokenizer(_dataStream); sAttributeInverse.InversingAttributeName = oneToken.StringValue; sEntity.InverseList.Add(sAttributeInverse); // semi colon oneToken = SLexer.Tokenizer(_dataStream); }
private void UpdateInverseAttribute(SAttributeInverse sAttributeInverse) { //SParamNamed inParam; if (sAttributeInverse.Type is SParamCollection) { var sc = sAttributeInverse.Type as SParamCollection; if (sc.ParamReference is SParamNamed) { var scn = sc.ParamReference as SParamNamed; scn.NamedReference = EntityList[scn.NamedRefString]; var sen = scn.NamedReference as SEntity; foreach (var item in sen.ParameterList) { if (item.Name == sAttributeInverse.InversingAttributeName) { sAttributeInverse.InversingAttribute = item; } } } } else { var sc = sAttributeInverse.Type as SParamNamed; sc.NamedReference = EntityList[sc.NamedRefString]; var sen = sc.NamedReference as SEntity; foreach (var item in sen.ParameterList) { if (item.Name == sAttributeInverse.InversingAttributeName) { sAttributeInverse.InversingAttribute = item; } } } }
private void UpdateInverseAttribute(SAttributeInverse sAttributeInverse) { //SParamNamed inParam; if (sAttributeInverse.Type is SParamCollection) { var sc = sAttributeInverse.Type as SParamCollection; if (sc.ParamReference is SParamNamed) { var scn = sc.ParamReference as SParamNamed; scn.NamedReference = EntityList[scn.NamedRefString]; var sen = scn.NamedReference as SEntity; foreach (var item in sen.ParameterList) { if(item.Name == sAttributeInverse.InversingAttributeName) { sAttributeInverse.InversingAttribute = item; } } } } else { var sc = sAttributeInverse.Type as SParamNamed; sc.NamedReference = EntityList[sc.NamedRefString]; var sen = sc.NamedReference as SEntity; foreach (var item in sen.ParameterList) { if(item.Name == sAttributeInverse.InversingAttributeName) { sAttributeInverse.InversingAttribute = item; } } } }