@@ -1689,6 +1689,9 @@ private EntityMutationContext preCreateOrUpdate(EntityStream entityStream, Entit
1689
1689
}
1690
1690
1691
1691
private void autoUpdateStarredDetailsAttributes (AtlasEntity entity , AtlasVertex vertex ) {
1692
+
1693
+ MetricRecorder metric = RequestContext .get ().startMetricRecord ("autoUpdateStarredDetailsAttributes" );
1694
+
1692
1695
Boolean starEntityForUser = entity .getStarred ();
1693
1696
1694
1697
if (starEntityForUser != null ) {
@@ -1719,41 +1722,9 @@ private void autoUpdateStarredDetailsAttributes(AtlasEntity entity, AtlasVertex
1719
1722
}
1720
1723
1721
1724
if (starEntityForUser ) {
1722
-
1723
- //Check and update starredBy Attribute
1724
- if (!starredBy .contains (requestUser )){
1725
- starredBy .add (requestUser );
1726
- }
1727
-
1728
- //Check and update starredDetailsList Attribute
1729
- boolean isStarredDetailsListUpdated = false ;
1730
- for (AtlasStruct starredDetails : starredDetailsList ) {
1731
- String assetStarredBy = (String ) starredDetails .getAttribute (ATTR_ASSET_STARRED_BY );
1732
- if (assetStarredBy .equals (requestUser )) {
1733
- starredDetails .setAttribute (ATTR_ASSET_STARRED_AT , requestTime );
1734
- isStarredDetailsListUpdated = true ;
1735
- break ;
1736
- }
1737
- }
1738
- if (!isStarredDetailsListUpdated ) {
1739
- AtlasStruct starredDetails = getStarredDetailsStruct (requestUser , requestTime );
1740
- starredDetailsList .add (starredDetails );
1741
- }
1742
-
1725
+ addUserToStarredAttributes (requestUser , requestTime , starredBy , starredDetailsList );
1743
1726
} else {
1744
-
1745
- //Check and update starredBy Attribute
1746
- if (starredBy .contains (requestUser )){
1747
- starredBy .remove (requestUser );
1748
- }
1749
-
1750
- for (AtlasStruct starredDetails : starredDetailsList ) {
1751
- String assetStarredBy = (String ) starredDetails .getAttribute (ATTR_ASSET_STARRED_BY );
1752
- if (assetStarredBy .equals (requestUser )) {
1753
- starredDetailsList .remove (starredDetails );
1754
- break ;
1755
- }
1756
- }
1727
+ removeUserFromStarredAttributes (requestUser , starredBy , starredDetailsList );
1757
1728
}
1758
1729
1759
1730
// Update entity attributes
@@ -1764,6 +1735,45 @@ private void autoUpdateStarredDetailsAttributes(AtlasEntity entity, AtlasVertex
1764
1735
}
1765
1736
1766
1737
}
1738
+
1739
+ RequestContext .get ().endMetricRecord (metric );
1740
+ }
1741
+
1742
+ private void addUserToStarredAttributes (String requestUser , long requestTime , Set <String > starredBy , Set <AtlasStruct > starredDetailsList ) {
1743
+ //Check and update starredBy Attribute
1744
+ if (!starredBy .contains (requestUser )){
1745
+ starredBy .add (requestUser );
1746
+ }
1747
+
1748
+ //Check and update starredDetailsList Attribute
1749
+ boolean isStarredDetailsListUpdated = false ;
1750
+ for (AtlasStruct starredDetails : starredDetailsList ) {
1751
+ String assetStarredBy = (String ) starredDetails .getAttribute (ATTR_ASSET_STARRED_BY );
1752
+ if (assetStarredBy .equals (requestUser )) {
1753
+ starredDetails .setAttribute (ATTR_ASSET_STARRED_AT , requestTime );
1754
+ isStarredDetailsListUpdated = true ;
1755
+ break ;
1756
+ }
1757
+ }
1758
+ if (!isStarredDetailsListUpdated ) {
1759
+ AtlasStruct starredDetails = getStarredDetailsStruct (requestUser , requestTime );
1760
+ starredDetailsList .add (starredDetails );
1761
+ }
1762
+ }
1763
+
1764
+ private void removeUserFromStarredAttributes (String requestUser , Set <String > starredBy , Set <AtlasStruct > starredDetailsList ) {
1765
+ //Check and update starredBy Attribute
1766
+ if (starredBy .contains (requestUser )){
1767
+ starredBy .remove (requestUser );
1768
+ }
1769
+
1770
+ for (AtlasStruct starredDetails : starredDetailsList ) {
1771
+ String assetStarredBy = (String ) starredDetails .getAttribute (ATTR_ASSET_STARRED_BY );
1772
+ if (assetStarredBy .equals (requestUser )) {
1773
+ starredDetailsList .remove (starredDetails );
1774
+ break ;
1775
+ }
1776
+ }
1767
1777
}
1768
1778
1769
1779
private AtlasStruct getStarredDetailsStruct (String assetStarredBy , long assetStarredAt ) {
@@ -2065,11 +2075,11 @@ private void flushAutoUpdateAttributes(AtlasEntity entity, AtlasEntityType entit
2065
2075
}
2066
2076
}
2067
2077
2068
- for (String attrName : entityType .getAllAttributes ().keySet ()) {
2069
- if (ATTR_STARRED_BY .equals (attrName ) || ATTR_STARRED_COUNT .equals (attrName ) || ATTR_STARRED_DETAILS_LIST .equals (attrName )) {
2070
- flushAttributes .add (attrName );
2071
- }
2072
- }
2078
+ // for (String attrName : entityType.getAllAttributes().keySet()) {
2079
+ // if (ATTR_STARRED_BY.equals(attrName) || ATTR_STARRED_COUNT.equals(attrName) || ATTR_STARRED_DETAILS_LIST.equals(attrName)) {
2080
+ // flushAttributes.add(attrName);
2081
+ // }
2082
+ // }
2073
2083
2074
2084
flushAttributes .forEach (entity ::removeAttribute );
2075
2085
}
0 commit comments